From 9b800ada62666c93c5db84cfa88a61d83db6af30 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 16:51:22 +0200 Subject: [PATCH 01/20] Fix CLI commands Signed-off-by: Anja Strunk --- cli.py | 360 +++++++++++++++++ generator/cli.py | 364 ------------------ generator/common/const.py | 2 +- generator/common/credentials.py | 2 +- generator/discovery/csp_generator.py | 8 +- .../openstack/openstack_discovery.py | 6 +- .../openstack/server_flavor_discovery.py | 4 +- .../openstack/vm_images_discovery.py | 2 +- 8 files changed, 372 insertions(+), 376 deletions(-) create mode 100755 cli.py delete mode 100755 generator/cli.py diff --git a/cli.py b/cli.py new file mode 100755 index 0000000..f5af071 --- /dev/null +++ b/cli.py @@ -0,0 +1,360 @@ +#!/usr/bin/env python3 + +"""Script to validate self-description in JSON-LD format + against its schema is turtle format. + +(c) Kurt Garloff , 5/2023 +(c) Roman Hros , 5/2023 +(c) Matej Feder , 5/2023 +(c) Anja Strunk , 1/2024 +SPDX-License-Identifier: EPL-2.0 +""" + +import functools +import json +import logging +import os +from datetime import datetime + +import click +import yaml + +import common.const as const +from common.config import Config +from discovery.csp_generator import CspGenerator +from discovery.gxdch_services import (RegistryService) + +SHAPES_FILE_FORMAT = "turtle" +DATA_FILE_FORMAT = "json-ld" + +VC_NAME_LOOKUP = { + "lp": "Legal Person", + "lrn": "Legal Registration Number", + "tandc": "Gaia-X Terms and Conditions", + "cs_csp": "GXDCH Compliance Service", + "cs_so": "GXDCH Compliance Service", + "so": "Service Offering", + "vmso": "Virtual Machine Service Offering", +} + + +def add_logging_options(func): + """Python Click decorator to include common logging options + + Offers an alternative to adding logging options directly to a + @click.group() in order to circumvent group option limitations that + would require any such options to be specified before the command name + by the user on the command line. + + Any @click.command() function can be decorated with this decorator to + include logging initialization based on common logging options that + can be specified alongside with the respective command's individual + options, e.g., + + mycommand --log-file local.log --debug --option1 --option2 + """ + @click.option( + "--log-file", + default="-", + help="Specify path to log file. If not specified, log messages will be printed to stdout" + ) + @click.option( + "--debug/--no-debug", + default=False, + help="Enable debug log level" + ) + @functools.wraps(func) + def wrapper(*args, **kwargs): + # consume the common logging options from kwargs directly + # (so that they are not passed to the wrapped function down below) + debug = kwargs.pop("debug") + log_file = kwargs.pop("log_file") + # initialize logging + log_file = None if log_file == "-" else log_file + logging.basicConfig( + format="%(levelname)s: %(message)s", + level=logging.DEBUG if debug else logging.INFO, + filename=log_file + ) + # call wrapped function + return func(*args, **kwargs) + return wrapper + + +#@click.group() +#def cli_commands(): +# pass + + +#@click.command() +#@add_logging_options +#@click.option( +# "--auto-sign/--no-auto-sign", +# default=False, +# help="Sign Gaia-X Terms and Conditions, automatically, without asking for permission on screen.", +#) +#@click.option( +# "--out-dir", +# default=".", +# help="Path to output directory.", +#) +#@click.option( +# "--config", +# default="config/config.yaml", +# help="Path to Configuration file for SCS GX Credential Generator.", +#) +#@click.option("--timeout", default=24, help="Timeout for API calls in seconds") +#@click.argument("cloud") +#def openstack(cloud, timeout, config, out_dir, auto_sign): +# """Generates Gaia-X Credentials for CSP And OpenStack cloud CLOUD. +# CLOUD MUST refer to a name defined in Openstack's configuration file clouds.yaml.""" +# with open(config, "r") as config_file: +# conf = Config(yaml.safe_load(config_file)) + +# if not auto_sign and not _are_gaiax_tandc_signed(conf): +# # user did not agree Gaia-X terms and conditions, we have to abort here +# logging.error( +# "Gaia-X Terms and Conditions were not signed - process aborted!" +# ) +# return +# elif auto_sign: +# logging.info( +# "Gaia-X Terms and Conditions accepted non-interactively via " +# "auto-sign option" +# ) + +# # create Gaia-X Credentials for CSP +# csp_gen = CspGenerator(conf=conf) +# csp_vcs = csp_gen.generate() + + # create Gaia-X Credentials for OpenStack +# so_vcs = create_vmso_vcs( +# conf=conf, +# cloud=cloud, +# csp_vcs=csp_vcs, +# timeout=timeout, +# ) + +# vcs = {**csp_vcs, **so_vcs} +# _print_vcs(vcs, out_dir) + + +#@click.command() +#@add_logging_options +#def kubernetes(): +# """Generates Gaia-X Credentials for CSP and Kubernetes.""" +# pass + + +# def load_file(filepath, file_format=DATA_FILE_FORMAT): +# """Load file in a given format""" +# graph = rdflib.Graph() +# graph.parse(filepath, format=file_format) +# return graph + +@click.command() +#@add_logging_options +@click.option( + "--auto-sign/--no-auto-sign", + default=False, + help="Sign Gaia-X Terms and Conditions, automatically, without asking for permission on screen.", +) +@click.option( + "--out-dir", + default=".", + help="Path to output directory.", +) +@click.option( + "--config", + default="config/config.yaml", + help="Path to Configuration file for SCS GX Credential Generator.") +def csp(config, out_dir, auto_sign): + """Generate Gaia-X Credential for CSP.""" + # load config file + with open(config, "r") as config_file: + conf = Config(yaml.safe_load(config_file)) + + if not auto_sign and not _are_gaiax_tandc_signed(conf): + # user did not agree Gaia-X terms and conditions, we have to abort here + logging.error( + "Gaia-X Terms and Conditions were not signed - process aborted!" + ) + return + elif auto_sign: + logging.info( + "Gaia-X Terms and Conditions accepted non-interactively via " + "auto-sign option" + ) + vcs = CspGenerator(conf).generate() + _print_vcs(vcs, out_dir) + + +#def init_openstack_connection(cloud: str, timeout: int = 12) -> Connection: +# """ +# Init connection to OpenStack cloud. +# @param cloud: name of OpenStack cloud to be connected. +# @param timeout: time, after connection is initiated a second time. +# @return: OpenStacl connection. +# """ +# try: +# conn = o_stack.connect(cloud=cloud, timeout=timeout, api_timeout=timeout * 1.5 + 4) +# conn.authorize() +# except Exception: +# logging.error("Retry connection with 'default' domain") +# conn = o_stack.connect( +# cloud=cloud, +# timeout=timeout, +# api_timeout=timeout * 1.5 + 4, +# default_domain="default", +# project_domain_id="default", +# ) +# conn.authorize() +# return conn + + +#def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int = 12) -> dict[dict]: +# """ +# Create Gaia-X Credentials for Virtual Machine Service Offering. This means +# - Gaia-X Credential of OpenStack Cloud as ServiceOffering with mandatory attributes +# - Gaia-X Credential of OpenStack Cloud as VirtualMachineServiceOffering +# - Gaia-X Credential of GXDCH Compliance Service, attesting complaince of OpenStack cloud description with Gaia-X rules. +# @param conf: configuration settings for creation process. +# @param cloud: OpenStack ncloud name. +# @param csp_vcs: Gaia-X Credentials of Cloud Service Provider. +# @param timeout: timeout for connection to OpenStack cloud. If timeout expires, connection is initialed a second time. +# @return: A list of Gaia-X Credentials describing given OpenStack cloud. +# """ + +# csp = conf.get_value([const.CONFIG_CSP]) +# # iaas = conf.get_value([const.CONFIG_IAAS]) not yet used, as Gaia-X "abuses" id attribute of Verifiable Credentials +# cred_settings = conf.get_value([const.CONFIG_CRED]) + +# # init services +# conn = init_openstack_connection(cloud=cloud, timeout=timeout) +# compliance = ComplianceService(conf.get_value([const.CONST_GXDCH, const.CONST_GXDCH_COMP])) +# discovery = OpenstackDiscovery(conn=conn, config=conf) + +# # run openstack discovery and build Gaia-X Credential for Virtual Machine Service Offering +# logging.info('Create VC of type "gx:VirtualMachineServiceOffering"...') +# vm_offering = discovery.discover() +# vmso_vc = { +# '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], +# 'type': "VerifiableCredential", +# 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/vmo.json", +# 'issuer': csp['did'], +# 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), +# 'credentialSubject': json.loads(json.dumps(vm_offering, default=json_ld.to_json_ld)), +# } +# vmso_vc_signed = crypto.sign_cred(cred=vmso_vc, +# key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), +# verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) +# logging.info('ok') + +# # build Gaia-X Credential for Service Offering +# logging.info('Create VC of type "gx:ServiceOffering"...') +# so_vc = { +# '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], +# 'type': "VerifiableCredential", +# 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json", +# 'issuer': csp['did'], +# 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), +# 'credentialSubject': { +# "type": "gx:ServiceOffering", +# "id": cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json#subject", # iaas['did'], +# "gx:providedBy": { +# 'id': csp_vcs['lp']['credentialSubject']['id'] +# }, +# "gx:termsAndConditions": [ +# {'gx:URL': s_tac.url, 'gx:hash': s_tac.hash} +# for s_tac in vm_offering.serviceOfferingTermsAndConditions], +# "gx:policy": vm_offering.servicePolicy, +# "gx:dataAccountExport": { +# "gx:requestType": vm_offering.dataAccountExport.requestType.code.text, +# "gx:accessType": vm_offering.dataAccountExport.accessType.code.text, +# "gx:formatType": "application/" + vm_offering.dataAccountExport.formatType.code.text +# } +# } +# } + +# # sign service offering credential +# so_vc_signed = crypto.sign_cred(cred=so_vc, +# key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), +# verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) +# logging.info('ok') + +# # Request Gaia-X Compliance Credential for Service Offering +# logging.info('Request VC of type "gx:compliance" for Service Offering at GXDCH Compliance Service...') +# vp = credentials.convert_to_vp(creds=[csp_vcs['tandc'], csp_vcs['lrn'], csp_vcs['lp'], so_vc_signed]) +# comp_vc = compliance.request_compliance_vc(vp, +# cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so_compliance.json")# + +# logging.info('ok') +# return {'so': so_vc, 'cs_so': json.loads(comp_vc), 'vmso': vmso_vc_signed, 'vp_so': vp} + + +def _get_timestamp(): + dt = datetime.now() # for date and time + # ts_1 = datetime.timestamp(dt) # for timestamp + return dt.strftime('%Y-%m-%d_%H-%M-%S') + + +def _print_vcs(vcs: dict, out_dir: str = "."): + if not os.path.isdir(out_dir): + raise NotADirectoryError(out_dir + " is not a directory or does not exit!") + + ts = _get_timestamp() + for key in vcs: + vc_path = os.path.join(out_dir, key + "_" + ts + ".json") + with open(vc_path, "w") as vc_file: + if key == 'vp_csp': + logging.info( + "Writing Verifiable Presentation of Cloud Service Provider to be verified at GXDCH Compliance Service to " + str( + vc_path)) + vc_file.write(json.dumps(vcs[key], indent=2)) + elif key == 'vp_so': + logging.info( + "Writing Verifiable Presentation of Service Offering to be verified at GXDCH Compliance Service to " + str( + vc_path)) + vc_file.write(json.dumps(vcs[key], indent=2)) + else: + logging.info("Writing Gaia-X Credential for " + VC_NAME_LOOKUP[key] + " to " + str(vc_path)) + vc_file.write(json.dumps(vcs[key], indent=2)) + + +def _are_gaiax_tandc_signed(conf: Config) -> bool: + reg = RegistryService(conf.get_value([const.CONST_GXDCH, const.CONST_GXDCH_REG])) + tand = reg.get_gx_tandc() + + print("Do you agree Gaia-X Terms and Conditions version " + tand['version'] + "?") + print() + print("-------------------------- Gaia-X Terms and Conditions --------------------------------------------") + print(tand['text']) + print("-------------------------- ------------------------------------------------------------------------") + print() + print("Please type 'y' for 'I do agree' and 'n' for 'I do not agree': ") + + resp = input() + while resp.lower() not in ['y', 'n']: + print("Please type 'y' for 'I do agree' and 'n' for 'I do not agree: '") + resp = input() + + if resp.lower() == 'y': + logging.info( + "Gaia-X Terms and Conditions accepted via interactive input" + ) + return True + logging.info( + "Gaia-X Terms and Conditions declined via interactive input" + ) + return False + + +#cli_commands.add_command(openstack) +#cli_commands.add_command(kubernetes) +#cli_commands.add_command(csp) + +#if __name__ == "__main__": +# cli_commands() + +if __name__ == '__main__': + csp() \ No newline at end of file diff --git a/generator/cli.py b/generator/cli.py deleted file mode 100755 index 84aacc9..0000000 --- a/generator/cli.py +++ /dev/null @@ -1,364 +0,0 @@ -#!/usr/bin/env python3 - -"""Script to validate self-description in JSON-LD format - against its schema is turtle format. - -(c) Kurt Garloff , 5/2023 -(c) Roman Hros , 5/2023 -(c) Matej Feder , 5/2023 -(c) Anja Strunk , 1/2024 -SPDX-License-Identifier: EPL-2.0 -""" - -import functools -import json -import logging -import os -from datetime import datetime, timezone -from typing import List - -import click -import openstack as o_stack -import yaml -from openstack.connection import Connection - -import generator.common.const as const -import generator.common.json_ld as json_ld -from generator.common import credentials, crypto -from generator.common.config import Config -from generator.discovery.csp_generator import CspGenerator -from generator.discovery.gxdch_services import (ComplianceService, - RegistryService) -from generator.discovery.openstack.openstack_discovery import \ - OpenstackDiscovery - -SHAPES_FILE_FORMAT = "turtle" -DATA_FILE_FORMAT = "json-ld" - -VC_NAME_LOOKUP = { - "lp": "Legal Person", - "lrn": "Legal Registration Number", - "tandc": "Gaia-X Terms and Conditions", - "cs_csp": "GXDCH Compliance Service", - "cs_so": "GXDCH Compliance Service", - "so": "Service Offering", - "vmso": "Virtual Machine Service Offering", -} - - -def add_logging_options(func): - """Python Click decorator to include common logging options - - Offers an alternative to adding logging options directly to a - @click.group() in order to circumvent group option limitations that - would require any such options to be specified before the command name - by the user on the command line. - - Any @click.command() function can be decorated with this decorator to - include logging initialization based on common logging options that - can be specified alongside with the respective command's individual - options, e.g., - - mycommand --log-file local.log --debug --option1 --option2 - """ - @click.option( - "--log-file", - default="-", - help="Specify path to log file. If not specified, log messages will be printed to stdout" - ) - @click.option( - "--debug/--no-debug", - default=False, - help="Enable debug log level" - ) - @functools.wraps(func) - def wrapper(*args, **kwargs): - # consume the common logging options from kwargs directly - # (so that they are not passed to the wrapped function down below) - debug = kwargs.pop("debug") - log_file = kwargs.pop("log_file") - # initialize logging - log_file = None if log_file == "-" else log_file - logging.basicConfig( - format="%(levelname)s: %(message)s", - level=logging.DEBUG if debug else logging.INFO, - filename=log_file - ) - # call wrapped function - return func(*args, **kwargs) - return wrapper - - -@click.group() -def cli_commands(): - pass - - -@click.command() -@add_logging_options -@click.option( - "--auto-sign/--no-auto-sign", - default=False, - help="Sign Gaia-X Terms and Conditions, automatically, without asking for permission on screen.", -) -@click.option( - "--out-dir", - default=".", - help="Path to output directory.", -) -@click.option( - "--config", - default="config/config.yaml", - help="Path to Configuration file for SCS GX Credential Generator.", -) -@click.option("--timeout", default=24, help="Timeout for API calls in seconds") -@click.argument("cloud") -def openstack(cloud, timeout, config, out_dir, auto_sign): - """Generates Gaia-X Credentials for CSP And OpenStack cloud CLOUD. - CLOUD MUST refer to a name defined in Openstack's configuration file clouds.yaml.""" - with open(config, "r") as config_file: - conf = Config(yaml.safe_load(config_file)) - - if not auto_sign and not _are_gaiax_tandc_signed(conf): - # user did not agree Gaia-X terms and conditions, we have to abort here - logging.error( - "Gaia-X Terms and Conditions were not signed - process aborted!" - ) - return - elif auto_sign: - logging.info( - "Gaia-X Terms and Conditions accepted non-interactively via " - "auto-sign option" - ) - - # create Gaia-X Credentials for CSP - csp_gen = CspGenerator(conf=conf) - csp_vcs = csp_gen.generate() - - # create Gaia-X Credentials for OpenStack - so_vcs = create_vmso_vcs( - conf=conf, - cloud=cloud, - csp_vcs=csp_vcs, - timeout=timeout, - ) - - vcs = {**csp_vcs, **so_vcs} - _print_vcs(vcs, out_dir) - - -@click.command() -@add_logging_options -def kubernetes(): - """Generates Gaia-X Credentials for CSP and Kubernetes.""" - pass - - -# def load_file(filepath, file_format=DATA_FILE_FORMAT): -# """Load file in a given format""" -# graph = rdflib.Graph() -# graph.parse(filepath, format=file_format) -# return graph - -@click.command() -@add_logging_options -@click.option( - "--auto-sign/--no-auto-sign", - default=False, - help="Sign Gaia-X Terms and Conditions, automatically, without asking for permission on screen.", -) -@click.option( - "--out-dir", - default=".", - help="Path to output directory.", -) -@click.option( - "--config", - default="config/config.yaml", - help="Path to Configuration file for SCS GX Credential Generator.") -def csp(config, out_dir, auto_sign): - """Generate Gaia-X Credential for CSP.""" - # load config file - with open(config, "r") as config_file: - conf = Config(yaml.safe_load(config_file)) - - if not auto_sign and not _are_gaiax_tandc_signed(conf): - # user did not agree Gaia-X terms and conditions, we have to abort here - logging.error( - "Gaia-X Terms and Conditions were not signed - process aborted!" - ) - return - elif auto_sign: - logging.info( - "Gaia-X Terms and Conditions accepted non-interactively via " - "auto-sign option" - ) - vcs = CspGenerator(conf).generate() - _print_vcs(vcs, out_dir) - - -def init_openstack_connection(cloud: str, timeout: int = 12) -> Connection: - """ - Init connection to OpenStack cloud. - @param cloud: name of OpenStack cloud to be connected. - @param timeout: time, after connection is initiated a second time. - @return: OpenStacl connection. - """ - try: - conn = o_stack.connect(cloud=cloud, timeout=timeout, api_timeout=timeout * 1.5 + 4) - conn.authorize() - except Exception: - logging.error("Retry connection with 'default' domain") - conn = o_stack.connect( - cloud=cloud, - timeout=timeout, - api_timeout=timeout * 1.5 + 4, - default_domain="default", - project_domain_id="default", - ) - conn.authorize() - return conn - - -def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int = 12) -> dict[dict]: - """ - Create Gaia-X Credentials for Virtual Machine Service Offering. This means - - Gaia-X Credential of OpenStack Cloud as ServiceOffering with mandatory attributes - - Gaia-X Credential of OpenStack Cloud as VirtualMachineServiceOffering - - Gaia-X Credential of GXDCH Compliance Service, attesting complaince of OpenStack cloud description with Gaia-X rules. - @param conf: configuration settings for creation process. - @param cloud: OpenStack ncloud name. - @param csp_vcs: Gaia-X Credentials of Cloud Service Provider. - @param timeout: timeout for connection to OpenStack cloud. If timeout expires, connection is initialed a second time. - @return: A list of Gaia-X Credentials describing given OpenStack cloud. - """ - csp = conf.get_value([const.CONFIG_CSP]) - # iaas = conf.get_value([const.CONFIG_IAAS]) not yet used, as Gaia-X "abuses" id attribute of Verifiable Credentials - cred_settings = conf.get_value([const.CONFIG_CRED]) - - # init services - conn = init_openstack_connection(cloud=cloud, timeout=timeout) - compliance = ComplianceService(conf.get_value([const.CONST_GXDCH, const.CONST_GXDCH_COMP])) - discovery = OpenstackDiscovery(conn=conn, config=conf) - - # run openstack discovery and build Gaia-X Credential for Virtual Machine Service Offering - logging.info('Create VC of type "gx:VirtualMachineServiceOffering"...') - vm_offering = discovery.discover() - vmso_vc = { - '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], - 'type': "VerifiableCredential", - 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/vmo.json", - 'issuer': csp['did'], - 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), - 'credentialSubject': json.loads(json.dumps(vm_offering, default=json_ld.to_json_ld)), - } - vmso_vc_signed = crypto.sign_cred(cred=vmso_vc, - key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), - verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) - logging.info('ok') - - # build Gaia-X Credential for Service Offering - logging.info('Create VC of type "gx:ServiceOffering"...') - so_vc = { - '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], - 'type': "VerifiableCredential", - 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json", - 'issuer': csp['did'], - 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), - 'credentialSubject': { - "type": "gx:ServiceOffering", - "id": cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json#subject", # iaas['did'], - "gx:providedBy": { - 'id': csp_vcs['lp']['credentialSubject']['id'] - }, - "gx:termsAndConditions": [ - {'gx:URL': s_tac.url, 'gx:hash': s_tac.hash} - for s_tac in vm_offering.serviceOfferingTermsAndConditions], - "gx:policy": vm_offering.servicePolicy, - "gx:dataAccountExport": { - "gx:requestType": vm_offering.dataAccountExport.requestType.code.text, - "gx:accessType": vm_offering.dataAccountExport.accessType.code.text, - "gx:formatType": "application/" + vm_offering.dataAccountExport.formatType.code.text - } - } - } - - # sign service offering credential - so_vc_signed = crypto.sign_cred(cred=so_vc, - key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), - verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) - logging.info('ok') - - # Request Gaia-X Compliance Credential for Service Offering - logging.info('Request VC of type "gx:compliance" for Service Offering at GXDCH Compliance Service...') - vp = credentials.convert_to_vp(creds=[csp_vcs['tandc'], csp_vcs['lrn'], csp_vcs['lp'], so_vc_signed]) - comp_vc = compliance.request_compliance_vc(vp, - cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so_compliance.json") - - logging.info('ok') - return {'so': so_vc, 'cs_so': json.loads(comp_vc), 'vmso': vmso_vc_signed, 'vp_so': vp} - - -def _get_timestamp(): - dt = datetime.now() # for date and time - # ts_1 = datetime.timestamp(dt) # for timestamp - return dt.strftime('%Y-%m-%d_%H-%M-%S') - - -def _print_vcs(vcs: dict, out_dir: str = "."): - if not os.path.isdir(out_dir): - raise NotADirectoryError(out_dir + " is not a directory or does not exit!") - - ts = _get_timestamp() - for key in vcs: - vc_path = os.path.join(out_dir, key + "_" + ts + ".json") - with open(vc_path, "w") as vc_file: - if key == 'vp_csp': - logging.info( - "Writing Verifiable Presentation of Cloud Service Provider to be verified at GXDCH Compliance Service to " + str( - vc_path)) - vc_file.write(json.dumps(vcs[key], indent=2)) - elif key == 'vp_so': - logging.info( - "Writing Verifiable Presentation of Service Offering to be verified at GXDCH Compliance Service to " + str( - vc_path)) - vc_file.write(json.dumps(vcs[key], indent=2)) - else: - logging.info("Writing Gaia-X Credential for " + VC_NAME_LOOKUP[key] + " to " + str(vc_path)) - vc_file.write(json.dumps(vcs[key], indent=2)) - - -def _are_gaiax_tandc_signed(conf: Config) -> bool: - reg = RegistryService(conf.get_value([const.CONST_GXDCH, const.CONST_GXDCH_REG])) - tand = reg.get_gx_tandc() - - print("Do you agree Gaia-X Terms and Conditions version " + tand['version'] + "?") - print() - print("-------------------------- Gaia-X Terms and Conditions --------------------------------------------") - print(tand['text']) - print("-------------------------- ------------------------------------------------------------------------") - print() - print("Please type 'y' for 'I do agree' and 'n' for 'I do not agree': ") - - resp = input() - while resp.lower() not in ['y', 'n']: - print("Please type 'y' for 'I do agree' and 'n' for 'I do not agree: '") - resp = input() - - if resp.lower() == 'y': - logging.info( - "Gaia-X Terms and Conditions accepted via interactive input" - ) - return True - logging.info( - "Gaia-X Terms and Conditions declined via interactive input" - ) - return False - - -cli_commands.add_command(openstack) -cli_commands.add_command(kubernetes) -cli_commands.add_command(csp) - -if __name__ == "__main__": - cli_commands() diff --git a/generator/common/const.py b/generator/common/const.py index 58f3af4..1a750f0 100644 --- a/generator/common/const.py +++ b/generator/common/const.py @@ -35,7 +35,7 @@ CONFIG_CSP_EUID = "euid" # GXDCH -CONST_GXDCH = "gxdch" +CONST_GXDCH = "GXDCH" CONST_GXDCH_NOT = "notary-service" CONST_GXDCH_COMP = "compliance-service" CONST_GXDCH_REG = "registry-service" diff --git a/generator/common/credentials.py b/generator/common/credentials.py index 1768746..8e87209 100644 --- a/generator/common/credentials.py +++ b/generator/common/credentials.py @@ -1,6 +1,6 @@ from typing import List -from generator.common import const +from common import const def convert_to_vp(creds: List[dict]) -> dict: diff --git a/generator/discovery/csp_generator.py b/generator/discovery/csp_generator.py index 158b3c9..4977227 100644 --- a/generator/discovery/csp_generator.py +++ b/generator/discovery/csp_generator.py @@ -4,10 +4,10 @@ import logging from datetime import datetime, timezone -import generator.common.const as const -from generator.common import credentials, crypto -from generator.common.config import Config -from generator.discovery.gxdch_services import (ComplianceService, +import common.const as const +from common import credentials, crypto +from common.config import Config +from discovery.gxdch_services import (ComplianceService, NotaryService, RegistryService) diff --git a/generator/discovery/openstack/openstack_discovery.py b/generator/discovery/openstack/openstack_discovery.py index 7f3aa08..ffc3827 100644 --- a/generator/discovery/openstack/openstack_discovery.py +++ b/generator/discovery/openstack/openstack_discovery.py @@ -8,12 +8,12 @@ from requests.exceptions import HTTPError from generator.common import const -from generator.common.config import Config +from generator import Config from generator.common.gx_schema import (DataAccountExport, TermsAndConditions, VirtualMachineServiceOffering) -from generator.discovery.openstack.server_flavor_discovery import \ +from generator import \ ServerFlavorDiscovery -from generator.discovery.openstack.vm_images_discovery import VmImageDiscovery +from generator import VmImageDiscovery class OpenstackDiscovery: diff --git a/generator/discovery/openstack/server_flavor_discovery.py b/generator/discovery/openstack/server_flavor_discovery.py index 4b58946..c74e0e4 100644 --- a/generator/discovery/openstack/server_flavor_discovery.py +++ b/generator/discovery/openstack/server_flavor_discovery.py @@ -7,7 +7,7 @@ from openstack.connection import Connection from generator.common import const -from generator.common.config import Config +from generator import Config from generator.common.gx_schema import CPU from generator.common.gx_schema import Architectures as CpuArch from generator.common.gx_schema import (Disk, DiskType, Frequency, Hypervisor, @@ -93,7 +93,7 @@ def _convert_to_gx(self, os_flavor: OS_Flavor) -> GX_Flavor: # Initialize Gaia-X Server Flavor disks = self._get_disks(os_flavor, flavorname) gx_flavor = GX_Flavor( - # name=os_flavor.name, + name=os_flavor.name, cpu=self._get_cpu(os_flavor, flavorname), ram=self._get_ram(os_flavor, flavorname), bootVolume=disks[0], diff --git a/generator/discovery/openstack/vm_images_discovery.py b/generator/discovery/openstack/vm_images_discovery.py index 960a9b9..2d11bba 100644 --- a/generator/discovery/openstack/vm_images_discovery.py +++ b/generator/discovery/openstack/vm_images_discovery.py @@ -8,7 +8,7 @@ from openstack.image.v2.image import Image as OS_Image import generator.common.const as const -from generator.common.config import Config +from generator import Config from generator.common.gx_schema import CPU, SPDX from generator.common.gx_schema import Architectures as CpuArch from generator.common.gx_schema import (CheckSum, ChecksumAlgorithm, Disk, From 2c96693624fc5a6946862ecdfe91efa2141ed64e Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 16:55:17 +0200 Subject: [PATCH 02/20] Revert unneccessary changes Signed-off-by: Anja Strunk --- cli.py | 357 +-- config/config.yaml | 2 +- generator/common/credentials.py | 2 +- generator/discovery/csp_generator.py | 8 +- .../openstack/openstack_discovery.py | 6 +- .../openstack/server_flavor_discovery.py | 2 +- .../openstack/vm_images_discovery.py | 2 +- tests/common.py | 2 +- tests/test_gxdch_services.py | 4 +- tests/test_server_flavor_discovery.py | 4 +- tests/test_vm_image_discovery.py | 2 +- vmo.json | 2091 +++++++++++++++++ 12 files changed, 2287 insertions(+), 195 deletions(-) create mode 100644 vmo.json diff --git a/cli.py b/cli.py index f5af071..9c6af44 100755 --- a/cli.py +++ b/cli.py @@ -14,15 +14,23 @@ import json import logging import os -from datetime import datetime +from datetime import datetime, timezone +from typing import List import click +import openstack as o_stack import yaml - -import common.const as const -from common.config import Config -from discovery.csp_generator import CspGenerator -from discovery.gxdch_services import (RegistryService) +from openstack.connection import Connection + +import generator.common.const as const +import generator.common.json_ld as json_ld +from generator.common import credentials, crypto +from generator.common.config import Config +from generator.discovery.csp_generator import CspGenerator +from generator.discovery.gxdch_services import (ComplianceService, + RegistryService) +from generator.discovery.openstack.openstack_discovery import \ + OpenstackDiscovery SHAPES_FILE_FORMAT = "turtle" DATA_FILE_FORMAT = "json-ld" @@ -37,7 +45,6 @@ "vmso": "Virtual Machine Service Offering", } - def add_logging_options(func): """Python Click decorator to include common logging options @@ -81,69 +88,70 @@ def wrapper(*args, **kwargs): return wrapper -#@click.group() -#def cli_commands(): -# pass - - -#@click.command() -#@add_logging_options -#@click.option( -# "--auto-sign/--no-auto-sign", -# default=False, -# help="Sign Gaia-X Terms and Conditions, automatically, without asking for permission on screen.", -#) -#@click.option( -# "--out-dir", -# default=".", -# help="Path to output directory.", -#) -#@click.option( -# "--config", -# default="config/config.yaml", -# help="Path to Configuration file for SCS GX Credential Generator.", -#) -#@click.option("--timeout", default=24, help="Timeout for API calls in seconds") -#@click.argument("cloud") -#def openstack(cloud, timeout, config, out_dir, auto_sign): -# """Generates Gaia-X Credentials for CSP And OpenStack cloud CLOUD. -# CLOUD MUST refer to a name defined in Openstack's configuration file clouds.yaml.""" -# with open(config, "r") as config_file: -# conf = Config(yaml.safe_load(config_file)) - -# if not auto_sign and not _are_gaiax_tandc_signed(conf): -# # user did not agree Gaia-X terms and conditions, we have to abort here -# logging.error( -# "Gaia-X Terms and Conditions were not signed - process aborted!" -# ) -# return -# elif auto_sign: -# logging.info( -# "Gaia-X Terms and Conditions accepted non-interactively via " -# "auto-sign option" -# ) - -# # create Gaia-X Credentials for CSP -# csp_gen = CspGenerator(conf=conf) -# csp_vcs = csp_gen.generate() + +@click.group() +def cli_commands(): + pass + + +@cli_commands.command() +@add_logging_options +@click.option( + "--auto-sign/--no-auto-sign", + default=False, + help="Sign Gaia-X Terms and Conditions, automatically, without asking for permission on screen.", +) +@click.option( + "--out-dir", + default=".", + help="Path to output directory.", +) +@click.option( + "--config", + default="config/config.yaml", + help="Path to Configuration file for SCS GX Credential Generator.", +) +@click.option("--timeout", default=24, help="Timeout for API calls in seconds") +@click.argument("cloud") +def openstack(cloud, timeout, config, out_dir, auto_sign): + """Generates Gaia-X Credentials for CSP And OpenStack cloud CLOUD. + CLOUD MUST refer to a name defined in Openstack's configuration file clouds.yaml.""" + with open(config, "r") as config_file: + conf = Config(yaml.safe_load(config_file)) + + if not auto_sign and not _are_gaiax_tandc_signed(conf): + # user did not agree Gaia-X terms and conditions, we have to abort here + logging.error( + "Gaia-X Terms and Conditions were not signed - process aborted!" + ) + return + elif auto_sign: + logging.info( + "Gaia-X Terms and Conditions accepted non-interactively via " + "auto-sign option" + ) + + # create Gaia-X Credentials for CSP + csp_gen = CspGenerator(conf=conf) + csp_vcs = csp_gen.generate() # create Gaia-X Credentials for OpenStack -# so_vcs = create_vmso_vcs( -# conf=conf, -# cloud=cloud, -# csp_vcs=csp_vcs, -# timeout=timeout, -# ) + so_vcs = create_vmso_vcs( + conf=conf, + cloud=cloud, + csp_vcs=csp_vcs, + timeout=timeout, + ) -# vcs = {**csp_vcs, **so_vcs} -# _print_vcs(vcs, out_dir) + vcs = {**csp_vcs, **so_vcs} + _print_vcs(vcs, out_dir) -#@click.command() -#@add_logging_options -#def kubernetes(): -# """Generates Gaia-X Credentials for CSP and Kubernetes.""" -# pass +@cli_commands.command() +@add_logging_options +def kubernetes(): + """Generates Gaia-X Credentials for CSP and Kubernetes.""" + pass # def load_file(filepath, file_format=DATA_FILE_FORMAT): @@ -152,8 +160,8 @@ def wrapper(*args, **kwargs): # graph.parse(filepath, format=file_format) # return graph -@click.command() -#@add_logging_options +@cli_commands.command() +@add_logging_options @click.option( "--auto-sign/--no-auto-sign", default=False, @@ -189,107 +197,108 @@ def csp(config, out_dir, auto_sign): _print_vcs(vcs, out_dir) -#def init_openstack_connection(cloud: str, timeout: int = 12) -> Connection: -# """ -# Init connection to OpenStack cloud. -# @param cloud: name of OpenStack cloud to be connected. -# @param timeout: time, after connection is initiated a second time. -# @return: OpenStacl connection. -# """ -# try: -# conn = o_stack.connect(cloud=cloud, timeout=timeout, api_timeout=timeout * 1.5 + 4) -# conn.authorize() -# except Exception: -# logging.error("Retry connection with 'default' domain") -# conn = o_stack.connect( -# cloud=cloud, -# timeout=timeout, -# api_timeout=timeout * 1.5 + 4, -# default_domain="default", -# project_domain_id="default", -# ) -# conn.authorize() -# return conn - - -#def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int = 12) -> dict[dict]: -# """ -# Create Gaia-X Credentials for Virtual Machine Service Offering. This means -# - Gaia-X Credential of OpenStack Cloud as ServiceOffering with mandatory attributes -# - Gaia-X Credential of OpenStack Cloud as VirtualMachineServiceOffering -# - Gaia-X Credential of GXDCH Compliance Service, attesting complaince of OpenStack cloud description with Gaia-X rules. -# @param conf: configuration settings for creation process. -# @param cloud: OpenStack ncloud name. -# @param csp_vcs: Gaia-X Credentials of Cloud Service Provider. -# @param timeout: timeout for connection to OpenStack cloud. If timeout expires, connection is initialed a second time. -# @return: A list of Gaia-X Credentials describing given OpenStack cloud. -# """ - -# csp = conf.get_value([const.CONFIG_CSP]) -# # iaas = conf.get_value([const.CONFIG_IAAS]) not yet used, as Gaia-X "abuses" id attribute of Verifiable Credentials -# cred_settings = conf.get_value([const.CONFIG_CRED]) - -# # init services -# conn = init_openstack_connection(cloud=cloud, timeout=timeout) -# compliance = ComplianceService(conf.get_value([const.CONST_GXDCH, const.CONST_GXDCH_COMP])) -# discovery = OpenstackDiscovery(conn=conn, config=conf) - -# # run openstack discovery and build Gaia-X Credential for Virtual Machine Service Offering -# logging.info('Create VC of type "gx:VirtualMachineServiceOffering"...') -# vm_offering = discovery.discover() -# vmso_vc = { -# '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], -# 'type': "VerifiableCredential", -# 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/vmo.json", -# 'issuer': csp['did'], -# 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), -# 'credentialSubject': json.loads(json.dumps(vm_offering, default=json_ld.to_json_ld)), -# } -# vmso_vc_signed = crypto.sign_cred(cred=vmso_vc, -# key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), -# verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) -# logging.info('ok') - -# # build Gaia-X Credential for Service Offering -# logging.info('Create VC of type "gx:ServiceOffering"...') -# so_vc = { -# '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], -# 'type': "VerifiableCredential", -# 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json", -# 'issuer': csp['did'], -# 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), -# 'credentialSubject': { -# "type": "gx:ServiceOffering", -# "id": cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json#subject", # iaas['did'], -# "gx:providedBy": { -# 'id': csp_vcs['lp']['credentialSubject']['id'] -# }, -# "gx:termsAndConditions": [ -# {'gx:URL': s_tac.url, 'gx:hash': s_tac.hash} -# for s_tac in vm_offering.serviceOfferingTermsAndConditions], -# "gx:policy": vm_offering.servicePolicy, -# "gx:dataAccountExport": { -# "gx:requestType": vm_offering.dataAccountExport.requestType.code.text, -# "gx:accessType": vm_offering.dataAccountExport.accessType.code.text, -# "gx:formatType": "application/" + vm_offering.dataAccountExport.formatType.code.text -# } -# } -# } - -# # sign service offering credential -# so_vc_signed = crypto.sign_cred(cred=so_vc, -# key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), -# verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) -# logging.info('ok') - -# # Request Gaia-X Compliance Credential for Service Offering -# logging.info('Request VC of type "gx:compliance" for Service Offering at GXDCH Compliance Service...') -# vp = credentials.convert_to_vp(creds=[csp_vcs['tandc'], csp_vcs['lrn'], csp_vcs['lp'], so_vc_signed]) -# comp_vc = compliance.request_compliance_vc(vp, -# cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so_compliance.json")# - -# logging.info('ok') -# return {'so': so_vc, 'cs_so': json.loads(comp_vc), 'vmso': vmso_vc_signed, 'vp_so': vp} +def init_openstack_connection(cloud: str, timeout: int = 12) -> Connection: + """ + Init connection to OpenStack cloud. + @param cloud: name of OpenStack cloud to be connected. + @param timeout: time, after connection is initiated a second time. + @return: OpenStacl connection. + """ + try: + conn = o_stack.connect(cloud=cloud, timeout=timeout, api_timeout=timeout * 1.5 + 4) + conn.authorize() + except Exception: + logging.error("Retry connection with 'default' domain") + conn = o_stack.connect( + cloud=cloud, + timeout=timeout, + api_timeout=timeout * 1.5 + 4, + default_domain="default", + project_domain_id="default", + ) + conn.authorize() + return conn + + +def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int = 12) -> dict: + """ + Create Gaia-X Credentials for Virtual Machine Service Offering. This means + - Gaia-X Credential of OpenStack Cloud as ServiceOffering with mandatory attributes + - Gaia-X Credential of OpenStack Cloud as VirtualMachineServiceOffering + - Gaia-X Credential of GXDCH Compliance Service, attesting complaince of OpenStack cloud description with Gaia-X rules. + @param conf: configuration settings for creation process. + @param cloud: OpenStack ncloud name. + @param csp_vcs: Gaia-X Credentials of Cloud Service Provider. + @param timeout: timeout for connection to OpenStack cloud. If timeout expires, connection is initialed a second time. + @return: A list of Gaia-X Credentials describing given OpenStack cloud. + """ + + print("vsmo called") + csp = conf.get_value([const.CONFIG_CSP]) + # iaas = conf.get_value([const.CONFIG_IAAS]) not yet used, as Gaia-X "abuses" id attribute of Verifiable Credentials + cred_settings = conf.get_value([const.CONFIG_CRED]) + + # init services + conn = init_openstack_connection(cloud=cloud, timeout=timeout) + compliance = ComplianceService(conf.get_value([const.CONST_GXDCH, const.CONST_GXDCH_COMP])) + discovery = OpenstackDiscovery(conn=conn, config=conf) + + # run openstack discovery and build Gaia-X Credential for Virtual Machine Service Offering + logging.info('Create VC of type "gx:VirtualMachineServiceOffering"...') + vm_offering = discovery.discover() + vmso_vc = { + '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], + 'type': "VerifiableCredential", + 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/vmo.json", + 'issuer': csp['did'], + 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), + 'credentialSubject': json.loads(json.dumps(vm_offering, default=json_ld.to_json_ld)), + } + vmso_vc_signed = crypto.sign_cred(cred=vmso_vc, + key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), + verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) + logging.info('ok') + + # build Gaia-X Credential for Service Offering + logging.info('Create VC of type "gx:ServiceOffering"...') + so_vc = { + '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], + 'type': "VerifiableCredential", + 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json", + 'issuer': csp['did'], + 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), + 'credentialSubject': { + "type": "gx:ServiceOffering", + "id": cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json#subject", # iaas['did'], + "gx:providedBy": { + 'id': csp_vcs['lp']['credentialSubject']['id'] + }, + "gx:termsAndConditions": [ + {'gx:URL': s_tac.url, 'gx:hash': s_tac.hash} + for s_tac in vm_offering.serviceOfferingTermsAndConditions], + "gx:policy": vm_offering.servicePolicy, + "gx:dataAccountExport": { + "gx:requestType": vm_offering.dataAccountExport.requestType.code.text, + "gx:accessType": vm_offering.dataAccountExport.accessType.code.text, + "gx:formatType": "application/" + vm_offering.dataAccountExport.formatType.code.text + } + } + } + + # sign service offering credential + so_vc_signed = crypto.sign_cred(cred=so_vc, + key=crypto.load_jwk_from_file(cred_settings[const.CONFIG_CRED_KEY]), + verification_method=cred_settings[const.CONFIG_CRED_VER_METH]) + logging.info('ok') + + # Request Gaia-X Compliance Credential for Service Offering + logging.info('Request VC of type "gx:compliance" for Service Offering at GXDCH Compliance Service...') + vp = credentials.convert_to_vp(creds=[csp_vcs['tandc'], csp_vcs['lrn'], csp_vcs['lp'], so_vc_signed]) + comp_vc = compliance.request_compliance_vc(vp, + cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so_compliance.json") + + logging.info('ok') + return {'so': so_vc, 'cs_so': json.loads(comp_vc), 'vmso': vmso_vc_signed, 'vp_so': vp} def _get_timestamp(): @@ -348,13 +357,5 @@ def _are_gaiax_tandc_signed(conf: Config) -> bool: ) return False - -#cli_commands.add_command(openstack) -#cli_commands.add_command(kubernetes) -#cli_commands.add_command(csp) - -#if __name__ == "__main__": -# cli_commands() - -if __name__ == '__main__': - csp() \ No newline at end of file +if __name__ == "__main__": + cli_commands() diff --git a/config/config.yaml b/config/config.yaml index 50d2a4a..492e863 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -47,7 +47,7 @@ IaaS: format-type: "plain" # Endpoints of Gaia-X Digital Clearing House -gxdch: +GXDCH: notary-service: https://registrationnumber.notary.lab.gaia-x.eu/v1-staging compliance-service: https://compliance.lab.gaia-x.eu/v1-staging registry-service: https://registry.lab.gaia-x.eu/v1-staging diff --git a/generator/common/credentials.py b/generator/common/credentials.py index 8e87209..1768746 100644 --- a/generator/common/credentials.py +++ b/generator/common/credentials.py @@ -1,6 +1,6 @@ from typing import List -from common import const +from generator.common import const def convert_to_vp(creds: List[dict]) -> dict: diff --git a/generator/discovery/csp_generator.py b/generator/discovery/csp_generator.py index 4977227..158b3c9 100644 --- a/generator/discovery/csp_generator.py +++ b/generator/discovery/csp_generator.py @@ -4,10 +4,10 @@ import logging from datetime import datetime, timezone -import common.const as const -from common import credentials, crypto -from common.config import Config -from discovery.gxdch_services import (ComplianceService, +import generator.common.const as const +from generator.common import credentials, crypto +from generator.common.config import Config +from generator.discovery.gxdch_services import (ComplianceService, NotaryService, RegistryService) diff --git a/generator/discovery/openstack/openstack_discovery.py b/generator/discovery/openstack/openstack_discovery.py index ffc3827..7f3aa08 100644 --- a/generator/discovery/openstack/openstack_discovery.py +++ b/generator/discovery/openstack/openstack_discovery.py @@ -8,12 +8,12 @@ from requests.exceptions import HTTPError from generator.common import const -from generator import Config +from generator.common.config import Config from generator.common.gx_schema import (DataAccountExport, TermsAndConditions, VirtualMachineServiceOffering) -from generator import \ +from generator.discovery.openstack.server_flavor_discovery import \ ServerFlavorDiscovery -from generator import VmImageDiscovery +from generator.discovery.openstack.vm_images_discovery import VmImageDiscovery class OpenstackDiscovery: diff --git a/generator/discovery/openstack/server_flavor_discovery.py b/generator/discovery/openstack/server_flavor_discovery.py index c74e0e4..64639de 100644 --- a/generator/discovery/openstack/server_flavor_discovery.py +++ b/generator/discovery/openstack/server_flavor_discovery.py @@ -7,7 +7,7 @@ from openstack.connection import Connection from generator.common import const -from generator import Config +from generator.common.config import Config from generator.common.gx_schema import CPU from generator.common.gx_schema import Architectures as CpuArch from generator.common.gx_schema import (Disk, DiskType, Frequency, Hypervisor, diff --git a/generator/discovery/openstack/vm_images_discovery.py b/generator/discovery/openstack/vm_images_discovery.py index 2d11bba..960a9b9 100644 --- a/generator/discovery/openstack/vm_images_discovery.py +++ b/generator/discovery/openstack/vm_images_discovery.py @@ -8,7 +8,7 @@ from openstack.image.v2.image import Image as OS_Image import generator.common.const as const -from generator import Config +from generator.common.config import Config from generator.common.gx_schema import CPU, SPDX from generator.common.gx_schema import Architectures as CpuArch from generator.common.gx_schema import (CheckSum, ChecksumAlgorithm, Disk, diff --git a/tests/common.py b/tests/common.py index 747be0f..99076f1 100644 --- a/tests/common.py +++ b/tests/common.py @@ -6,7 +6,7 @@ from openstack.compute.v2.flavor import Flavor as OS_Flavor from openstack.image.v2.image import Image as OS_Image -from generator.common.config import Config +from generator import Config from generator.common.gx_schema import (CPU, GPU, CheckSum, CodeArtifact, Device, Disk, Encryption, GaiaXEntity, Hypervisor, Image, diff --git a/tests/test_gxdch_services.py b/tests/test_gxdch_services.py index b55e1ae..2292f26 100644 --- a/tests/test_gxdch_services.py +++ b/tests/test_gxdch_services.py @@ -4,8 +4,8 @@ from requests.exceptions import HTTPError -from generator.discovery.gxdch_services import (ComplianceService, - NotaryService, RegistryService) +from generator import (ComplianceService, + NotaryService, RegistryService) class GxdchTestCase(unittest.TestCase): diff --git a/tests/test_server_flavor_discovery.py b/tests/test_server_flavor_discovery.py index a666424..3e8f289 100644 --- a/tests/test_server_flavor_discovery.py +++ b/tests/test_server_flavor_discovery.py @@ -8,7 +8,7 @@ from generator.common.gx_schema import (Disk, DiskBusType, DiskType, Frequency, Hypervisor, Memory, MemorySize) from generator.common.gx_schema import ServerFlavor as GX_Flavor -from generator.discovery.openstack.server_flavor_discovery import \ +from generator import \ ServerFlavorDiscovery from generator.vendor.flavor_names import parser_v3 from tests.common import MockConnection, OpenstackTestcase, get_config @@ -147,7 +147,7 @@ def test_get_disks(self): gx_flavor = self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4-10h", disk=50)) self.assertEqual( [ - Disk(diskSize=MemorySize(value=10, unit=const.UNIT_GB), diskType=DiskType("local HDD"),) + Disk(diskSize=MemorySize(value=10, unit=const.UNIT_GB), diskType=DiskType("local HDD"), ) ], [gx_flavor.bootVolume] + gx_flavor.additionalVolume, ) diff --git a/tests/test_vm_image_discovery.py b/tests/test_vm_image_discovery.py index f8e252d..89a72a0 100644 --- a/tests/test_vm_image_discovery.py +++ b/tests/test_vm_image_discovery.py @@ -13,7 +13,7 @@ from generator.common.gx_schema import VMImage as GX_Image from generator.common.gx_schema import WatchDogActions from generator.common.json_ld import JsonLdObject -from generator.discovery.openstack.vm_images_discovery import VmImageDiscovery +from generator import VmImageDiscovery from tests.common import MockConnection, OpenstackTestcase, get_config GX_IMAGE_1 = JsonLdObject( diff --git a/vmo.json b/vmo.json new file mode 100644 index 0000000..9a6e095 --- /dev/null +++ b/vmo.json @@ -0,0 +1,2091 @@ +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/suites/jws-2020/v1", + "https://registry.lab.gaia-x.eu/development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#" + ], + "type": "VerifiableCredential", + "id": "https://cloudandheat.com/gaia-x/vmo.json", + "issuer": "did:web:cloudandheat.com", + "issuanceDate": "2024-10-15T11:22:36.198558+00:00", + "credentialSubject": { + "type": "gx:VirtualMachineServiceOffering", + "gx:providedBy": "did:web:cloudandheat.com", + "gx:serviceOfferingTermsAndConditions": [ + { + "type": "gx:TermsAndConditions", + "gx:url": { + "type": "xsd:anyURI", + "@value": "https://www.cloudandheat.com/allgemeine-geschaeftsbedingungen/" + }, + "gx:hash": "470f16403d6824a47a8b8056c31920847f3c5a91528f6628bf47f758cd49905a" + } + ], + "gx:dataAccountExport": { + "type": "gx:DataAccountExport", + "gx:requestType": "API", + "gx:accessType": "digital", + "gx:formatType": "plain" + }, + "gx:servicePolicy": [ + "default: allow intent" + ], + "gx:codeArtifact": [ + { + "type": "gx:VMImage", + "gx:name": "Debian 12 (bookworm)", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "494aa249608c5cfa3f8c2b1f7e660afcdd4c0b7e7c8f385d81f3308e3f448408d2a207e1c81e6f9ed7f53a621756086b4bed63f43b57f5ad9cd4cffbf8f5dbff" + }, + "gx:version": "20231123", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "12", + "gx:osDistribution": "Debian" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8.589934592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2305843009.213694 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Debian 11 (bullseye)", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "fbf20d5d959635f2456d5a79b44909b0c847712eabb6c89c32fa7e293d7fa795461fa09192a16a2a6f3a5fc2c7fc767eef0ea9d751b2f424e026742bbf18210a" + }, + "gx:version": "20231202", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "11", + "gx:osDistribution": "Debian" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8.589934592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2305843009.213694 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Ubuntu 22.04 LTS x64", + "gx:copyrightOwnedBy": [ + "Canonical" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://ubuntu.com/legal/open-source-licences" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "04afa3b568843063a3d7a768f4a73b172ad342980bf0e44c4d953bec651341830813b88d6fff61b1b0adcd11e7b5ed8822938c3362cd0d39a2a806373f245ebe" + }, + "gx:version": "20231130", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Canonical" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://ubuntu.com/legal/open-source-licences" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "22.04", + "gx:osDistribution": "Ubuntu" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8.589934592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2535526590.2095895 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Ubuntu 20.04 LTS x64", + "gx:copyrightOwnedBy": [ + "Canonical" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://ubuntu.com/legal/open-source-licences" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "9b572bcbc0ac73ee2fd68571bd960ffa1c4d77a2bc399c1c35832b398e022c71efafaec95c005ee405a51b28b7b47d9d9fe0b2ad1f57e44a850d1cbf1b0acfd8" + }, + "gx:version": "20231130", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Canonical" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://ubuntu.com/legal/open-source-licences" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "20.04", + "gx:osDistribution": "Ubuntu" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8.589934592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2535526590.2095895 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Debian 10 (buster)", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "39c6e0299d81a13f7619b6a7a60a024ddad69bb3ce75bff32a0e25f2d5b2d98f82ca935ce615b3aba79e09629d5b2adc8d763cb260d630bd4589136c80970d1d" + }, + "gx:version": "20231113", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "10.13.21", + "gx:osDistribution": "Debian" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8.589934592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2305843009.213694 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Debian 9 (stretch)", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "ebf3f8ccf1af4e0e1d528b4b3f3db244c304ee471173d665e73149b736a6e28eafab679dfd785a3be9ea32d8932488b44fc13b1ed2a5a40969b8a80cdd33faeb" + }, + "gx:version": "20230927", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Ian Murdock and others" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://www.debian.org/legal/licenses/index.en.html" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "9-20230926", + "gx:osDistribution": "Debian" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8.589934592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2305843009.213694 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Fedora 38 x86_64", + "gx:copyrightOwnedBy": [ + "Fedora-Project" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://docs.fedoraproject.org/en-US/legal/fedora-linux-license/" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "92511ce0c2c63376edc1d11cfc134bdd93109f19de11d727064825fe5ade37b2b616d6ef2a0a4c4e79badbbb56e76700d3ee42491fe40b7ee8883abe3cd7e78f" + }, + "gx:version": "20230413", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Fedora-Project" + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://docs.fedoraproject.org/en-US/legal/fedora-linux-license/" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "38", + "gx:osDistribution": "Fedora" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 5.36870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 5764607523.034235 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "AlmaLinux 8", + "gx:copyrightOwnedBy": [ + "Canonical Ltd." + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://almalinux.org/p/the-almalinux-os-licensing-policy/" + } + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "6b633aa75262f728b976a7768b00ffaedec9d169610e9f4984cf3bf1692c9231886e836754a4062845740966f91c16cb1ecbf946e46f8e898d92aee533eff812" + }, + "gx:version": "20211119", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "Canonical Ltd." + ], + "gx:license": [ + { + "type": "xsd:anyURI", + "@value": "https://almalinux.org/p/the-almalinux-os-licensing-policy/" + } + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:version": "8", + "gx:osDistribution": "AlmaLinux" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 536.870912 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 10.73741824 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "SCSI" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "reset", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 11529215046.06847 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Fedora Atomic 29 x86_64", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "TBA" + ], + "gx:resourcePolicy": "default: allow intent", + "gx:checksum": { + "type": "gx:CheckSum", + "gx:checkSumCalculation": "sha-512", + "gx:checkSumValue": "70d30c4349572acebc74c8aef236767a6aa65076094991e5f647a5facc75865c154d9c4fb160a3ea4d7642044b76a92a01ea492cd95b1eb970f5d85f3f7e9773" + }, + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "TBA" + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:osDistribution": "others" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 201.326592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 1.073741824 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "disabled", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 6917529027.641083 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Ubuntu 16.04 LTS x64", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "https://www.example.com/tba" + ], + "gx:resourcePolicy": "default: allow intent", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "https://www.example.com/tba" + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:osDistribution": "others" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 201.326592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 1.073741824 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "disabled", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2535526590.2095895 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Fedora CoreOS 32", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "https://www.example.com/tba" + ], + "gx:resourcePolicy": "default: allow intent", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "https://www.example.com/tba" + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:osDistribution": "others" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 1073.741824 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 10.73741824 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "disabled", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 9223372036.854776 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "CirrOS 0.5.1", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "https://www.example.com/tba" + ], + "gx:resourcePolicy": "default: allow intent", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "https://www.example.com/tba" + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:osDistribution": "others" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 201.326592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 1.073741824 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "disabled", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 126100789.5663739 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + }, + { + "type": "gx:VMImage", + "gx:name": "Fedora Atomic 27 x86_64", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "TBA" + ], + "gx:resourcePolicy": "default: allow intent", + "gx:operatingSystem": { + "type": "gx:OperatingSystem", + "gx:copyrightOwnedBy": [ + "TBA" + ], + "gx:license": [ + "TBA" + ], + "gx:resourcePolicy": [ + "default: allow intent" + ], + "gx:osDistribution": "others" + }, + "gx:cpuReq": { + "type": "gx:CPU", + "gx:cpuArchitecture": "x86-64", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:ramReq": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 201.326592 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:rootDiskReq": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 1.073741824 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:secureBoot": { + "type": "xsd:boolean", + "@value": false + }, + "gx:vPMU": { + "type": "xsd:boolean", + "@value": false + }, + "gx:multiQueues": { + "type": "xsd:boolean", + "@value": false + }, + "gx:updateStrategy": { + "type": "gx:UpdateStrategy" + }, + "gx:licenseIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:maintenance": { + "type": "gx:MaintenanceSubscription", + "gx:subscriptionIncluded": { + "type": "xsd:boolean", + "@value": false + }, + "gx:subscriptionRequired": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:vmImageDiskFormat": "RAW", + "gx:hypervisorType": "other", + "gx:firmwareType": "other", + "gx:hwRngTypeOfImage": "None", + "gx:watchDogAction": "disabled", + "null": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 689186532.6737163 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + } + } + ], + "gx:instantiationReq": [ + { + "type": "gx:ServerFlavor", + "gx:name": "XXS", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 1 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 512.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 10.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "XS", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 1 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 1024.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 10.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "S", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 1 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 2048.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 15.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "S.mem+", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 1 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 4096.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 15.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "M", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 2 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 4096.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 25.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "M.mem+", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 2 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8192.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 25.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "L", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 4 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 8192.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 50.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "L.mem+", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 4 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 16384.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 50.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "XL", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 8 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 16384.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 100.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + }, + { + "type": "gx:ServerFlavor", + "gx:name": "XL.mem+", + "gx:cpu": { + "type": "gx:CPU", + "gx:cpuArchitecture": "Other", + "gx:smtEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:numberOfCores": 8 + }, + "gx:ram": { + "type": "gx:Memory", + "gx:memorySize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 32768.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" + }, + "gx:memoryClass": "other", + "gx:memoryRank": "other", + "gx:eccEnabled": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hardwareEncryption": { + "type": "xsd:boolean", + "@value": false + } + }, + "gx:bootVolume": { + "type": "gx:Disk", + "gx:diskSize": { + "type": "gx:MemorySize", + "qudt:value": { + "type": "xsd:float", + "@value": 100.0 + }, + "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" + }, + "gx:diskType": "other", + "gx:diskBusType": "other" + }, + "gx:hardwareAssistedVirtualization": { + "type": "xsd:boolean", + "@value": false + }, + "gx:hwRngTypeOfFlavor": "None" + } + ] + }, + "proof": { + "type": "JsonWebSignature2020", + "created": "2024-10-15T11:22:37.820455+00:00", + "proofPurpose": "assertionMethod", + "verificationMethod": "did:web:cloudandheat.com#JWK2020-X509-0", + "jws": "eyJhbGciOiJQUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..speMDioXstiTam7wHdzHk25dRNLz7z9zC0XsZYstp5qwN-zimFW1pxajCQL79i-i-nTCbLZeSbLF7pkf5ZOGQ07YeldnZFs5JpWxcc0F57GLtFxrsPbha4156tpLGXxyZyH2r7XmIhwwTPfSP-uV9j56zwhfwzI3TA4Y0fuf3yb0pZ-Kc7lsjLpQA7oIpVf5WNMEYoRf7OPFdXCxsNk9xouZ0jVt4Kjz1EaxF9phynwnirb0yDwtNY-XoXWhyXLf_npZojNuOt_nfzgPPB1r2XNoD7FQuP8rvFIjmFkNVWgn9QL6JaQaLmaAnJIF4LnAbpjTpD4QosaOQB4QqW0SF-Q_y4cBVzpSKxhXFBDV707gO52zkIwtS6nDvdQ86WZ6A7bp5NA1KNegWS9JkcChyE63pezOcYyz3_REQHnr28Wu-qGxjXdl3Oheh77OxgAKqswyQKFPl6vLetaKUQPDJmqICFoM7C3maciSHWqZqWVI2UwIutQJ0UXQ94_4coopXsGdLWSJ94CcGqEpMHDBD_m6aX366C6y7E7ltLuewuq4ZwOlDSFoKzW3FyfmcHPisYlDxrPJjcPoNnB15NBv4eYrHmgutIDkeGslVgwBPmaOslbBWyNCKEaA9h6ybTLYLvnHXJOCtQJbQVt1YgMhxObi7kQNRLMdeIROrK7T2JI" + } +} \ No newline at end of file From 738fbafc217ade7f401fb8dcdb2891cd4fc409b2 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 16:57:08 +0200 Subject: [PATCH 03/20] Revert unneccessary changes Signed-off-by: Anja Strunk --- tests/test_gxdch_services.py | 2 +- tests/test_server_flavor_discovery.py | 2 +- tests/test_vm_image_discovery.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_gxdch_services.py b/tests/test_gxdch_services.py index 2292f26..0caf5e7 100644 --- a/tests/test_gxdch_services.py +++ b/tests/test_gxdch_services.py @@ -4,7 +4,7 @@ from requests.exceptions import HTTPError -from generator import (ComplianceService, +from generator.discovery.gxdch_services import (ComplianceService, NotaryService, RegistryService) diff --git a/tests/test_server_flavor_discovery.py b/tests/test_server_flavor_discovery.py index 3e8f289..7259ccf 100644 --- a/tests/test_server_flavor_discovery.py +++ b/tests/test_server_flavor_discovery.py @@ -8,7 +8,7 @@ from generator.common.gx_schema import (Disk, DiskBusType, DiskType, Frequency, Hypervisor, Memory, MemorySize) from generator.common.gx_schema import ServerFlavor as GX_Flavor -from generator import \ +from generator.discovery.openstack.server_flavor_discovery import \ ServerFlavorDiscovery from generator.vendor.flavor_names import parser_v3 from tests.common import MockConnection, OpenstackTestcase, get_config diff --git a/tests/test_vm_image_discovery.py b/tests/test_vm_image_discovery.py index 89a72a0..f8e252d 100644 --- a/tests/test_vm_image_discovery.py +++ b/tests/test_vm_image_discovery.py @@ -13,7 +13,7 @@ from generator.common.gx_schema import VMImage as GX_Image from generator.common.gx_schema import WatchDogActions from generator.common.json_ld import JsonLdObject -from generator import VmImageDiscovery +from generator.discovery.openstack.vm_images_discovery import VmImageDiscovery from tests.common import MockConnection, OpenstackTestcase, get_config GX_IMAGE_1 = JsonLdObject( From 96eb9a1fa802d69930cccd3863fb4bd7682a037d Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 16:58:26 +0200 Subject: [PATCH 04/20] Revert unneccessary changes Signed-off-by: Anja Strunk --- tests/common.py | 2 +- tests/test_gxdch_services.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/common.py b/tests/common.py index 99076f1..747be0f 100644 --- a/tests/common.py +++ b/tests/common.py @@ -6,7 +6,7 @@ from openstack.compute.v2.flavor import Flavor as OS_Flavor from openstack.image.v2.image import Image as OS_Image -from generator import Config +from generator.common.config import Config from generator.common.gx_schema import (CPU, GPU, CheckSum, CodeArtifact, Device, Disk, Encryption, GaiaXEntity, Hypervisor, Image, diff --git a/tests/test_gxdch_services.py b/tests/test_gxdch_services.py index 0caf5e7..b55e1ae 100644 --- a/tests/test_gxdch_services.py +++ b/tests/test_gxdch_services.py @@ -5,7 +5,7 @@ from requests.exceptions import HTTPError from generator.discovery.gxdch_services import (ComplianceService, - NotaryService, RegistryService) + NotaryService, RegistryService) class GxdchTestCase(unittest.TestCase): From 64a399476821c1b3816918f9d3412c7809275658 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 16:59:51 +0200 Subject: [PATCH 05/20] Revert unneccessary changes Signed-off-by: Anja Strunk --- tests/test_server_flavor_discovery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_server_flavor_discovery.py b/tests/test_server_flavor_discovery.py index 7259ccf..a666424 100644 --- a/tests/test_server_flavor_discovery.py +++ b/tests/test_server_flavor_discovery.py @@ -147,7 +147,7 @@ def test_get_disks(self): gx_flavor = self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4-10h", disk=50)) self.assertEqual( [ - Disk(diskSize=MemorySize(value=10, unit=const.UNIT_GB), diskType=DiskType("local HDD"), ) + Disk(diskSize=MemorySize(value=10, unit=const.UNIT_GB), diskType=DiskType("local HDD"),) ], [gx_flavor.bootVolume] + gx_flavor.additionalVolume, ) From 92ae479963339c830ec8315e50c6d38d84b09316 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 17:04:51 +0200 Subject: [PATCH 06/20] Fix pipeline Signed-off-by: Anja Strunk --- cli.py | 3 ++- tests/test_cli.py | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/cli.py b/cli.py index 9c6af44..0f6ba35 100755 --- a/cli.py +++ b/cli.py @@ -45,6 +45,7 @@ "vmso": "Virtual Machine Service Offering", } + def add_logging_options(func): """Python Click decorator to include common logging options @@ -88,7 +89,6 @@ def wrapper(*args, **kwargs): return wrapper - @click.group() def cli_commands(): pass @@ -357,5 +357,6 @@ def _are_gaiax_tandc_signed(conf: Config) -> bool: ) return False + if __name__ == "__main__": cli_commands() diff --git a/tests/test_cli.py b/tests/test_cli.py index 716db64..aaee791 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -8,7 +8,7 @@ from cryptography.hazmat.primitives.asymmetric import rsa from jwcrypto.jwt import JWK -from generator import cli +import cli from generator.common import config, const from generator.common.gx_schema import (DataAccountExport, TermsAndConditions, VirtualMachineServiceOffering) @@ -21,7 +21,7 @@ class CliTestCase(unittest.TestCase): @patch("generator.common.crypto.load_jwk_from_file") @patch("generator.discovery.openstack.openstack_discovery.OpenstackDiscovery.discover") @patch("openstack.connect") - @patch("generator.cli._print_vcs") + @patch("cli._print_vcs") def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gxdch_req_compl): # Mock openstack calls cli_print_vs.return_value = None @@ -63,8 +63,8 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx self.assertIsNotNone(vcs['vp_so']) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("generator.cli.create_vmso_vcs") - @patch("generator.cli._print_vcs") + @patch("cli.create_vmso_vcs") + @patch("cli._print_vcs") def test_openstack(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -82,8 +82,8 @@ def test_openstack(self, cli_print_vs, gen_vmso, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("generator.cli.create_vmso_vcs") - @patch("generator.cli._print_vcs") + @patch("cli.create_vmso_vcs") + @patch("cli._print_vcs") def test_openstack_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -101,8 +101,8 @@ def test_openstack_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("generator.cli.create_vmso_vcs") - @patch("generator.cli._print_vcs") + @patch("cli.create_vmso_vcs") + @patch("cli._print_vcs") def test_openstack_no_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -121,8 +121,8 @@ def test_openstack_no_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("generator.cli.create_vmso_vcs") - @patch("generator.cli._print_vcs") + @patch("cli.create_vmso_vcs") + @patch("cli._print_vcs") def test_openstack_sign(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -152,7 +152,7 @@ def test_init_connection(self, os_connect): self.assertIsNotNone(con) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("generator.cli._print_vcs") + @patch("cli._print_vcs") def test_csp_auto_sign(self, cli_print_vs, gen_csp): cli_print_vs.return_value = None gen_csp.return_value = {"vc": "bar"} @@ -167,7 +167,7 @@ def test_csp_auto_sign(self, cli_print_vs, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("generator.cli._print_vcs") + @patch("cli._print_vcs") def test_csp_sign(self, cli_print_vs, gen_csp): cli_print_vs.return_value = None gen_csp.return_value = {"vc": "bar"} @@ -182,7 +182,7 @@ def test_csp_sign(self, cli_print_vs, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("generator.cli._print_vcs") + @patch("cli._print_vcs") def test_csp_no_auto_sign(self, cli_print_vs, gen_csp): cli_print_vs.return_value = None gen_csp.return_value = {"vc": "bar"} From 5b37c397b32e580eb03ace40de11ed4cecac845e Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 17:22:22 +0200 Subject: [PATCH 07/20] Update docu. Add config.yaml to gitignore Signed-off-by: Anja Strunk --- .gitignore | 1 + README.md | 10 +++++----- config/{config.yaml => config.yaml.template} | 0 3 files changed, 6 insertions(+), 5 deletions(-) rename config/{config.yaml => config.yaml.template} (100%) diff --git a/.gitignore b/.gitignore index 1731690..5c1e6a2 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ coverage.xml os_secret k8s_secret .gx-credentials +config/config.yaml diff --git a/README.md b/README.md index fb38714..cc1d3ee 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ gx-credential-generator requires some configuration options. See [configuration] Create Gaia-X Credential for a CSP without specifying a configuration file. This implies the default path at `/etc/gx-credential-generator/config.yaml`, which must exist: ```commandline -python3 -m generator.cli csp +python3 -m cli csp ``` Gaia-X terms and conditions are displayed and you are prompted to agree to them. Type 'y' to agree or 'n' to disagree. @@ -109,19 +109,19 @@ Each Gaia-X Credential is serialized in [JSON-LD](https://json-ld.org/) and stor Gaia-X Credential files are placed in the current working directory, by default. To change the output directory use the parameter `--out-dir`: ```commandline -python3 -m generator.cli csp --out-dir=my-output-dir +python3 -m cli csp --out-dir=my-output-dir ``` Running the gx-credential-generator with a specified configuration file path using the parameter `--config`: ```commandline -python3 -m generator.cli csp --config=my-config.yaml +python3 -m cli csp --config=my-config.yaml ``` You can avoid interactive prompt for Gaia-X terms and conditions agreement using the option `--auto-sign`. This implies you agree to them: ```commandline -python3 -m generator.cli csp --auto-sign +python3 -m cli csp --auto-sign ``` ### OpenStack @@ -151,7 +151,7 @@ The command to run gx-credential-generator for OpenStack clouds is similar to th Create Gaia-X Credential for an OpenStack cloud ```bash - python3 -m generator.cli openstack + python3 -m cli openstack ``` (`` is a placeholder for the name of the desired entry in `clouds.yaml`) diff --git a/config/config.yaml b/config/config.yaml.template similarity index 100% rename from config/config.yaml rename to config/config.yaml.template From ba2a00895ca9323e4c2ca2b5b01a9f5361664446 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 15 Oct 2024 17:28:39 +0200 Subject: [PATCH 08/20] Fix test cases Signed-off-by: Anja Strunk --- generator/common/const.py | 2 +- tests/common.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/generator/common/const.py b/generator/common/const.py index 1a750f0..cd9dc6c 100644 --- a/generator/common/const.py +++ b/generator/common/const.py @@ -1,7 +1,7 @@ """ Constants used by SCS GX Credential Generator. """ -CONFIG_FILE = "config/config.yaml" +CONFIG_FILE = "config/config.yaml.template" # General keys CONFIG_DID = "did" diff --git a/tests/common.py b/tests/common.py index 747be0f..f9e07ac 100644 --- a/tests/common.py +++ b/tests/common.py @@ -26,7 +26,7 @@ def get_absolute_path(relative_path: str) -> str: def get_config() -> Config: - with open(get_absolute_path("config/config.yaml"), "r") as config_file: + with open(get_absolute_path("config/config.yaml.template"), "r") as config_file: return Config(yaml.safe_load(config_file)) From a6040d92adf41f597c0c011e9fef520aa530831f Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Wed, 16 Oct 2024 11:34:50 +0200 Subject: [PATCH 09/20] Change file names to be in sync with VC ids Signed-off-by: Anja Strunk --- cli.py | 15 +++++++-------- generator/discovery/csp_generator.py | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/cli.py b/cli.py index 0f6ba35..d6f8caf 100755 --- a/cli.py +++ b/cli.py @@ -36,11 +36,11 @@ DATA_FILE_FORMAT = "json-ld" VC_NAME_LOOKUP = { - "lp": "Legal Person", + "legal_person": "Legal Person", "lrn": "Legal Registration Number", "tandc": "Gaia-X Terms and Conditions", - "cs_csp": "GXDCH Compliance Service", - "cs_so": "GXDCH Compliance Service", + "csp_compliance": "GXDCH Compliance Service", + "so_compliance": "GXDCH Compliance Service", "so": "Service Offering", "vmso": "Virtual Machine Service Offering", } @@ -233,7 +233,6 @@ def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int @return: A list of Gaia-X Credentials describing given OpenStack cloud. """ - print("vsmo called") csp = conf.get_value([const.CONFIG_CSP]) # iaas = conf.get_value([const.CONFIG_IAAS]) not yet used, as Gaia-X "abuses" id attribute of Verifiable Credentials cred_settings = conf.get_value([const.CONFIG_CRED]) @@ -249,7 +248,7 @@ def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int vmso_vc = { '@context': [const.VC_CONTEXT, const.JWS_CONTEXT, const.REG_CONTEXT], 'type': "VerifiableCredential", - 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/vmo.json", + 'id': cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/vmso.json", 'issuer': csp['did'], 'issuanceDate': str(datetime.now(tz=timezone.utc).isoformat()), 'credentialSubject': json.loads(json.dumps(vm_offering, default=json_ld.to_json_ld)), @@ -271,7 +270,7 @@ def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int "type": "gx:ServiceOffering", "id": cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so.json#subject", # iaas['did'], "gx:providedBy": { - 'id': csp_vcs['lp']['credentialSubject']['id'] + 'id': csp_vcs['legal_person']['credentialSubject']['id'] }, "gx:termsAndConditions": [ {'gx:URL': s_tac.url, 'gx:hash': s_tac.hash} @@ -293,12 +292,12 @@ def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int # Request Gaia-X Compliance Credential for Service Offering logging.info('Request VC of type "gx:compliance" for Service Offering at GXDCH Compliance Service...') - vp = credentials.convert_to_vp(creds=[csp_vcs['tandc'], csp_vcs['lrn'], csp_vcs['lp'], so_vc_signed]) + vp = credentials.convert_to_vp(creds=[csp_vcs['tandc'], csp_vcs['lrn'], csp_vcs['legal_person'], so_vc_signed]) comp_vc = compliance.request_compliance_vc(vp, cred_settings[const.CONFIG_CRED_BASE_CRED_URL] + "/so_compliance.json") logging.info('ok') - return {'so': so_vc, 'cs_so': json.loads(comp_vc), 'vmso': vmso_vc_signed, 'vp_so': vp} + return {'so': so_vc, 'so_compliance': json.loads(comp_vc), 'vmso': vmso_vc_signed, 'vp_so': vp} def _get_timestamp(): diff --git a/generator/discovery/csp_generator.py b/generator/discovery/csp_generator.py index 158b3c9..b314474 100644 --- a/generator/discovery/csp_generator.py +++ b/generator/discovery/csp_generator.py @@ -59,7 +59,7 @@ def generate(self) -> dict: vp = credentials.convert_to_vp(creds=[tandc_vc, lrn_vc, lp_vc]) cs_vc = self.compliance.request_compliance_vc(vp, self.cred_base_url + "/csp_compliance.json") logging.info('ok') - return {'tandc': tandc_vc, 'lrn': lrn_vc, 'lp': lp_vc, 'cs_csp': json.loads(cs_vc), 'vp_csp': vp} + return {'tandc': tandc_vc, 'lrn': lrn_vc, 'legal_person': lp_vc, 'csp_compliance': json.loads(cs_vc), 'vp_csp': vp} def _sign_gaia_x_terms_and_conditions(self) -> dict: """ From a9893a62952a68a49e2489035a50daf7eb0a5304 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Wed, 16 Oct 2024 11:44:24 +0200 Subject: [PATCH 10/20] Fix test cases Signed-off-by: Anja Strunk --- tests/test_cli.py | 4 ++-- tests/test_csp_generator.py | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/test_cli.py b/tests/test_cli.py index aaee791..ff28476 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -45,7 +45,7 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx encryption_algorithm=serialization.NoEncryption())) csp_vcs = {'tandc': {"credentialSubject": {"type": "gx:GaiaXTermsAndConditions"}}, "lrn": {"credentialSubject": {"type": "gx:LegalRegistrationNumber", "id": "foo"}}, - "lp": {"credentialSubject": {"type": "gx:LegalParticipant", "id": "foo"}}} + "legal_person": {"credentialSubject": {"type": "gx:LegalParticipant", "id": "foo"}}} gxdch_req_compl.return_value = "{\"credentialSubject\": {\"type\": \"gx:ComplianceCredential\", \"id\": \"foo\"}}" with open(get_absolute_path(const.CONFIG_FILE), "r") as config_file: @@ -58,7 +58,7 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx self.assertEqual(4, len(vcs)) self.assertEqual("gx:ServiceOffering", vcs['so']['credentialSubject']["type"]) - self.assertEqual("gx:ComplianceCredential", vcs['cs_so']['credentialSubject']["type"]) + self.assertEqual("gx:ComplianceCredential", vcs['so_compliance']['credentialSubject']["type"]) self.assertEqual("gx:VirtualMachineServiceOffering", vcs['vmso']['credentialSubject']["type"]) self.assertIsNotNone(vcs['vp_so']) diff --git a/tests/test_csp_generator.py b/tests/test_csp_generator.py index 536aa31..6448f54 100644 --- a/tests/test_csp_generator.py +++ b/tests/test_csp_generator.py @@ -70,14 +70,14 @@ def _verify_csp_gen(self, csp_vcs, get_tandc, request_req_number, request_comp_v self.assertEqual("gx:legalRegistrationNumber", csp_vcs['lrn']['credentialSubject']['type']) self.assertEqual( self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/legal_person.json", - csp_vcs['lp']['id']) + csp_vcs['legal_person']['id']) self.assertEqual( self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/legal_person.json#subject", - csp_vcs['lp']['credentialSubject']['id']) - self.assertEqual(self.conf.get_value([const.CONFIG_CSP, const.CONFIG_DID]), csp_vcs['lp']['issuer']) - self.assertIsNotNone(csp_vcs['lp']['proof']) - self.assertEqual("gx:LegalParticipant", csp_vcs['lp']['credentialSubject']['type']) - self.assertEqual("gx:ComplianceCredential", csp_vcs['cs_csp']['credentialSubject']['type']) + csp_vcs['legal_person']['credentialSubject']['id']) + self.assertEqual(self.conf.get_value([const.CONFIG_CSP, const.CONFIG_DID]), csp_vcs['legal_person']['issuer']) + self.assertIsNotNone(csp_vcs['legal_person']['proof']) + self.assertEqual("gx:LegalParticipant", csp_vcs['legal_person']['credentialSubject']['type']) + self.assertEqual("gx:ComplianceCredential", csp_vcs['csp_compliance']['credentialSubject']['type']) if __name__ == '__main__': From 9df8a67bf2624e14d264cfb4c575e39b60f83904 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Thu, 17 Oct 2024 07:49:01 +0200 Subject: [PATCH 11/20] Comit WIP Signed-off-by: Anja Strunk --- .../openstack/openstack_discovery.py | 22 ++++++- .../openstack/volume_type_discovery.py | 60 +++++++++++++++++++ tests/common.py | 7 ++- tests/test_volume_types_discovery.py | 37 ++++++++++++ 4 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 generator/discovery/openstack/volume_type_discovery.py create mode 100644 tests/test_volume_types_discovery.py diff --git a/generator/discovery/openstack/openstack_discovery.py b/generator/discovery/openstack/openstack_discovery.py index 7f3aa08..7520f7e 100644 --- a/generator/discovery/openstack/openstack_discovery.py +++ b/generator/discovery/openstack/openstack_discovery.py @@ -3,6 +3,8 @@ from hashlib import sha256 +from typing import List + import requests from openstack.connection import Connection from requests.exceptions import HTTPError @@ -10,10 +12,15 @@ from generator.common import const from generator.common.config import Config from generator.common.gx_schema import (DataAccountExport, TermsAndConditions, - VirtualMachineServiceOffering) + VirtualMachineServiceOffering, BlockStorageServiceOffering) +from generator.common.gx_schema import VMImage as GX_Image +from generator.common.gx_schema import ServerFlavor as GX_Flavor +from generator.common.gx_schema import BlockStorageConfiguration as GX_Type + from generator.discovery.openstack.server_flavor_discovery import \ ServerFlavorDiscovery from generator.discovery.openstack.vm_images_discovery import VmImageDiscovery +from generator.discovery.openstack.volume_type_discovery import VolumeTypeDiscovery class OpenstackDiscovery: @@ -33,7 +40,17 @@ def discover(self) -> VirtualMachineServiceOffering: """ images = VmImageDiscovery(self.conn, self.config).discover() flavors = ServerFlavorDiscovery(self.conn, self.config).discover() + vol_types = VolumeTypeDiscovery(self.conn, self.config).discover() + + vm_offering = self._create_vm_offering(images,flavors) + storage_offering = self._create_storage_offering(vol_types) + + vm_offering.dependsOn(storage_offering) + return vm_offering + + + def _create_vm_offering(self, images: List[GX_Image], flavors: List[GX_Flavor]) -> VirtualMachineServiceOffering: # Create Virtual Service Offering object data_export_account = DataAccountExport( requestType=self.config.get_value( @@ -92,3 +109,6 @@ def discover(self) -> VirtualMachineServiceOffering: codeArtifact=images, instantiationReq=flavors, ) + + def _create_storage_offering(self, vol_types: List[GX_Type]) -> BlockStorageServiceOffering: + pass \ No newline at end of file diff --git a/generator/discovery/openstack/volume_type_discovery.py b/generator/discovery/openstack/volume_type_discovery.py new file mode 100644 index 0000000..f832c5c --- /dev/null +++ b/generator/discovery/openstack/volume_type_discovery.py @@ -0,0 +1,60 @@ +from datetime import datetime +from typing import List, Union +import re + +import generator.common.const as const +from generator.common.config import Config + +from generator.common.gx_schema import BlockStorageConfiguration as GX_Type +from generator.common.gx_schema import Encryption + +from openstack.connection import Connection +from openstack.block_storage.v3.type import Type as OS_Type + + +class VolumeTypeDiscovery: + + def __init__(self, conn: Connection, conf: Config) -> None: + """ + Constructor. + @param conn: Openstack Connection + @param conf: configuration + """ + self.conn = conn + self.conf = conf + + def discover(self) -> List[GX_Type]: + """ + Return one credential for each public VM image offered by openstack cloud. + + @return: list of VM images + """ + types = [] + for t in self.conn.list_volume_types(): + if t.is_public: + types.append(self._convert_to_gx_image(t)) + return types + + def _convert_to_gx_type(self, v_type: OS_Type) -> GX_Type: + gx_vol_type = GX_Type(name=v_type.name, description=v_type.description) + + if self._is_volume_encrypted(v_type.description): + gx_vol_type.storageEncryption = Encryption() + + + return gx_vol_type + + def _is_volume_encrypted(self, vol_name) -> bool: + match = re.search(r'\[scs:\s*.*?encrypted.*?\]', vol_name) + if match: + return True + else: + return False + + def _is_volume_replicated(self, vol_name) -> bool: + match = re.search(r'\[scs:\s*.*?replicated.*?\]', vol_name) + if match: + return True + else: + return False + diff --git a/tests/common.py b/tests/common.py index f9e07ac..9bbcff7 100644 --- a/tests/common.py +++ b/tests/common.py @@ -5,6 +5,7 @@ import yaml from openstack.compute.v2.flavor import Flavor as OS_Flavor from openstack.image.v2.image import Image as OS_Image +from openstack.block_storage.v3.type import Type as OS_Type from generator.common.config import Config from generator.common.gx_schema import (CPU, GPU, CheckSum, CodeArtifact, @@ -286,9 +287,10 @@ class MockConnection: Wrap connection to OpenStack Cluster """ - def __init__(self, images: List[OS_Image] = None, flavors: List[OS_Flavor] = None): + def __init__(self, images: List[OS_Image] = None, flavors: List[OS_Flavor] = None, types: List[OS_Type] = None): self.images = images or [] self.flavors = flavors or [] + self.types = types or [] def list_images(self) -> List[OS_Image]: return self.images @@ -296,5 +298,8 @@ def list_images(self) -> List[OS_Image]: def list_flavors(self) -> List[OS_Flavor]: return self.flavors + def list_volume_types(self) -> List[OS_Type]: + return self.types + def authorize(self): pass diff --git a/tests/test_volume_types_discovery.py b/tests/test_volume_types_discovery.py new file mode 100644 index 0000000..6590d88 --- /dev/null +++ b/tests/test_volume_types_discovery.py @@ -0,0 +1,37 @@ +import unittest + +from openstack.compute.v2.flavor import Flavor as OS_Flavor +from openstack.block_storage.v3.type import Type as OS_TYPE +from openstack.block_storage.v3.type import TypeEncryption + +from generator.common import const +from generator.common.gx_schema import CPU +from generator.common.gx_schema import Architectures as CpuArch +from generator.common.gx_schema import (Disk, DiskBusType, DiskType, Frequency, + Hypervisor, Memory, MemorySize) +from generator.common.gx_schema import ServerFlavor as GX_Flavor +from generator.discovery.openstack.server_flavor_discovery import \ + ServerFlavorDiscovery +from generator.discovery.openstack.volume_type_discovery import VolumeTypeDiscovery +from generator.vendor.flavor_names import parser_v3 +from tests.common import MockConnection, OpenstackTestcase, get_config + +OS_TYPE_1 = OS_TYPE(id="type_1", name="foo",) +OS_TYPE_2 = OS_TYPE( + id="type_2", name="[scs: encrypted] bar",) + + +class VolumeTypeDiscoveryTestcase(OpenstackTestcase): + def setUp(self): + self.discovery = VolumeTypeDiscovery( + conn=MockConnection(types=[OS_TYPE_1, OS_TYPE_2]), conf=get_config() + ) + + def test_is_volume_encrypted(self): + self.assertFalse(self.discovery._is_volume_encrypted("foo")) + self.assertTrue(self.discovery._is_volume_encrypted("[scs: encrypted] bar")) + self.assertTrue(self.discovery._is_volume_encrypted("[scs: encrypted, replicated] bar")) + self.assertFalse(self.discovery._is_volume_encrypted("foo [scs:] bar")) + +if __name__ == "__main__": + unittest.main() From 674a3a56e9df88a48b3721fdca17657ada5aac26 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Thu, 17 Oct 2024 07:53:53 +0200 Subject: [PATCH 12/20] Change default path of config file Signed-off-by: Anja Strunk --- generator/common/const.py | 2 +- tests/test_cli.py | 16 ++++++++-------- tests/test_csp_generator.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/generator/common/const.py b/generator/common/const.py index cd9dc6c..1a750f0 100644 --- a/generator/common/const.py +++ b/generator/common/const.py @@ -1,7 +1,7 @@ """ Constants used by SCS GX Credential Generator. """ -CONFIG_FILE = "config/config.yaml.template" +CONFIG_FILE = "config/config.yaml" # General keys CONFIG_DID = "did" diff --git a/tests/test_cli.py b/tests/test_cli.py index ff28476..b1d4713 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -48,7 +48,7 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx "legal_person": {"credentialSubject": {"type": "gx:LegalParticipant", "id": "foo"}}} gxdch_req_compl.return_value = "{\"credentialSubject\": {\"type\": \"gx:ComplianceCredential\", \"id\": \"foo\"}}" - with open(get_absolute_path(const.CONFIG_FILE), "r") as config_file: + with open(get_absolute_path("config/config.yaml.template"), "r") as config_file: conf = config.Config(yaml.safe_load(config_file)) vcs = cli.create_vmso_vcs(conf, "myCloud", csp_vcs) @@ -72,7 +72,7 @@ def test_openstack(self, cli_print_vs, gen_vmso, gen_csp): runner = CliRunner() result = runner.invoke( - cli.openstack, "myCloud --config=" + get_absolute_path(const.CONFIG_FILE) + " --auto-sign" + cli.openstack, "myCloud --config=" + get_absolute_path("config/config.yaml.template") + " --auto-sign" ) gen_csp.assert_called_once() @@ -91,7 +91,7 @@ def test_openstack_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): runner = CliRunner() result = runner.invoke( - cli.openstack, "myCloud --config=" + get_absolute_path(const.CONFIG_FILE) + " --auto-sign" + cli.openstack, "myCloud --config=" + get_absolute_path("config/config.yaml.template") + " --auto-sign" ) gen_csp.assert_called_once() @@ -111,7 +111,7 @@ def test_openstack_no_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): with patch('builtins.input', return_value="n"): runner = CliRunner() result = runner.invoke( - cli.openstack, "myCloud --config=" + get_absolute_path(const.CONFIG_FILE) + " --no-auto-sign" + cli.openstack, "myCloud --config=" + get_absolute_path("config/config.yaml.template") + " --no-auto-sign" ) self.assertEqual(0, gen_csp.call_count) @@ -131,7 +131,7 @@ def test_openstack_sign(self, cli_print_vs, gen_vmso, gen_csp): with patch('builtins.input', return_value="y"): runner = CliRunner() result = runner.invoke( - cli.openstack, "myCloud --config=" + get_absolute_path(const.CONFIG_FILE) + cli.openstack, "myCloud --config=" + get_absolute_path("config/config.yaml.template") ) gen_csp.assert_called_once() @@ -159,7 +159,7 @@ def test_csp_auto_sign(self, cli_print_vs, gen_csp): runner = CliRunner() result = runner.invoke( - cli.csp, "--config=" + get_absolute_path(const.CONFIG_FILE) + " --auto-sign" + cli.csp, "--config=" + get_absolute_path("config/config.yaml.template") + " --auto-sign" ) gen_csp.assert_called_once() @@ -175,7 +175,7 @@ def test_csp_sign(self, cli_print_vs, gen_csp): with patch('builtins.input', return_value="y"): runner = CliRunner() result = runner.invoke( - cli.csp, "--config=" + get_absolute_path(const.CONFIG_FILE) + cli.csp, "--config=" + get_absolute_path("config/config.yaml.template") ) gen_csp.assert_called_once() self.assertIsNone(result.exception) @@ -190,7 +190,7 @@ def test_csp_no_auto_sign(self, cli_print_vs, gen_csp): with patch('builtins.input', return_value="n"): runner = CliRunner() result = runner.invoke( - cli.csp, "--config=" + get_absolute_path(const.CONFIG_FILE) + " --no-auto-sign" + cli.csp, "--config=" + get_absolute_path("config/config.yaml.template") + " --no-auto-sign" ) self.assertEqual(0, gen_csp.call_count) diff --git a/tests/test_csp_generator.py b/tests/test_csp_generator.py index 6448f54..4f51915 100644 --- a/tests/test_csp_generator.py +++ b/tests/test_csp_generator.py @@ -15,7 +15,7 @@ class CspPGeneratorTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - with open(get_absolute_path(const.CONFIG_FILE), "r") as config_file: + with open(get_absolute_path("config/config.yaml.template"), "r") as config_file: cls.conf = config.Config(yaml.safe_load(config_file)) cls.private_key = JWK.from_pem(rsa.generate_private_key( From 68ec401eb5eedad68fab73a7a7643e8b195f3c0d Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Thu, 17 Oct 2024 07:55:55 +0200 Subject: [PATCH 13/20] Delete obsolete vsmo.json Signed-off-by: Anja Strunk --- vmo.json | 2091 ------------------------------------------------------ 1 file changed, 2091 deletions(-) delete mode 100644 vmo.json diff --git a/vmo.json b/vmo.json deleted file mode 100644 index 9a6e095..0000000 --- a/vmo.json +++ /dev/null @@ -1,2091 +0,0 @@ -{ - "@context": [ - "https://www.w3.org/2018/credentials/v1", - "https://w3id.org/security/suites/jws-2020/v1", - "https://registry.lab.gaia-x.eu/development/api/trusted-shape-registry/v1/shapes/jsonld/trustframework#" - ], - "type": "VerifiableCredential", - "id": "https://cloudandheat.com/gaia-x/vmo.json", - "issuer": "did:web:cloudandheat.com", - "issuanceDate": "2024-10-15T11:22:36.198558+00:00", - "credentialSubject": { - "type": "gx:VirtualMachineServiceOffering", - "gx:providedBy": "did:web:cloudandheat.com", - "gx:serviceOfferingTermsAndConditions": [ - { - "type": "gx:TermsAndConditions", - "gx:url": { - "type": "xsd:anyURI", - "@value": "https://www.cloudandheat.com/allgemeine-geschaeftsbedingungen/" - }, - "gx:hash": "470f16403d6824a47a8b8056c31920847f3c5a91528f6628bf47f758cd49905a" - } - ], - "gx:dataAccountExport": { - "type": "gx:DataAccountExport", - "gx:requestType": "API", - "gx:accessType": "digital", - "gx:formatType": "plain" - }, - "gx:servicePolicy": [ - "default: allow intent" - ], - "gx:codeArtifact": [ - { - "type": "gx:VMImage", - "gx:name": "Debian 12 (bookworm)", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "494aa249608c5cfa3f8c2b1f7e660afcdd4c0b7e7c8f385d81f3308e3f448408d2a207e1c81e6f9ed7f53a621756086b4bed63f43b57f5ad9cd4cffbf8f5dbff" - }, - "gx:version": "20231123", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "12", - "gx:osDistribution": "Debian" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8.589934592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2305843009.213694 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Debian 11 (bullseye)", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "fbf20d5d959635f2456d5a79b44909b0c847712eabb6c89c32fa7e293d7fa795461fa09192a16a2a6f3a5fc2c7fc767eef0ea9d751b2f424e026742bbf18210a" - }, - "gx:version": "20231202", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "11", - "gx:osDistribution": "Debian" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8.589934592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2305843009.213694 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Ubuntu 22.04 LTS x64", - "gx:copyrightOwnedBy": [ - "Canonical" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://ubuntu.com/legal/open-source-licences" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "04afa3b568843063a3d7a768f4a73b172ad342980bf0e44c4d953bec651341830813b88d6fff61b1b0adcd11e7b5ed8822938c3362cd0d39a2a806373f245ebe" - }, - "gx:version": "20231130", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Canonical" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://ubuntu.com/legal/open-source-licences" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "22.04", - "gx:osDistribution": "Ubuntu" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8.589934592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2535526590.2095895 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Ubuntu 20.04 LTS x64", - "gx:copyrightOwnedBy": [ - "Canonical" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://ubuntu.com/legal/open-source-licences" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "9b572bcbc0ac73ee2fd68571bd960ffa1c4d77a2bc399c1c35832b398e022c71efafaec95c005ee405a51b28b7b47d9d9fe0b2ad1f57e44a850d1cbf1b0acfd8" - }, - "gx:version": "20231130", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Canonical" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://ubuntu.com/legal/open-source-licences" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "20.04", - "gx:osDistribution": "Ubuntu" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8.589934592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2535526590.2095895 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Debian 10 (buster)", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "39c6e0299d81a13f7619b6a7a60a024ddad69bb3ce75bff32a0e25f2d5b2d98f82ca935ce615b3aba79e09629d5b2adc8d763cb260d630bd4589136c80970d1d" - }, - "gx:version": "20231113", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "10.13.21", - "gx:osDistribution": "Debian" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8.589934592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2305843009.213694 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Debian 9 (stretch)", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "ebf3f8ccf1af4e0e1d528b4b3f3db244c304ee471173d665e73149b736a6e28eafab679dfd785a3be9ea32d8932488b44fc13b1ed2a5a40969b8a80cdd33faeb" - }, - "gx:version": "20230927", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Ian Murdock and others" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://www.debian.org/legal/licenses/index.en.html" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "9-20230926", - "gx:osDistribution": "Debian" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8.589934592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2305843009.213694 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Fedora 38 x86_64", - "gx:copyrightOwnedBy": [ - "Fedora-Project" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://docs.fedoraproject.org/en-US/legal/fedora-linux-license/" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "92511ce0c2c63376edc1d11cfc134bdd93109f19de11d727064825fe5ade37b2b616d6ef2a0a4c4e79badbbb56e76700d3ee42491fe40b7ee8883abe3cd7e78f" - }, - "gx:version": "20230413", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Fedora-Project" - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://docs.fedoraproject.org/en-US/legal/fedora-linux-license/" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "38", - "gx:osDistribution": "Fedora" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 5.36870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 5764607523.034235 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "AlmaLinux 8", - "gx:copyrightOwnedBy": [ - "Canonical Ltd." - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://almalinux.org/p/the-almalinux-os-licensing-policy/" - } - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "6b633aa75262f728b976a7768b00ffaedec9d169610e9f4984cf3bf1692c9231886e836754a4062845740966f91c16cb1ecbf946e46f8e898d92aee533eff812" - }, - "gx:version": "20211119", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "Canonical Ltd." - ], - "gx:license": [ - { - "type": "xsd:anyURI", - "@value": "https://almalinux.org/p/the-almalinux-os-licensing-policy/" - } - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:version": "8", - "gx:osDistribution": "AlmaLinux" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 536.870912 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 10.73741824 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "SCSI" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "reset", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 11529215046.06847 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Fedora Atomic 29 x86_64", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "TBA" - ], - "gx:resourcePolicy": "default: allow intent", - "gx:checksum": { - "type": "gx:CheckSum", - "gx:checkSumCalculation": "sha-512", - "gx:checkSumValue": "70d30c4349572acebc74c8aef236767a6aa65076094991e5f647a5facc75865c154d9c4fb160a3ea4d7642044b76a92a01ea492cd95b1eb970f5d85f3f7e9773" - }, - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "TBA" - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:osDistribution": "others" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 201.326592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 1.073741824 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "disabled", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 6917529027.641083 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Ubuntu 16.04 LTS x64", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "https://www.example.com/tba" - ], - "gx:resourcePolicy": "default: allow intent", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "https://www.example.com/tba" - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:osDistribution": "others" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 201.326592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 1.073741824 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "disabled", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2535526590.2095895 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Fedora CoreOS 32", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "https://www.example.com/tba" - ], - "gx:resourcePolicy": "default: allow intent", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "https://www.example.com/tba" - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:osDistribution": "others" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 1073.741824 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 10.73741824 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "disabled", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 9223372036.854776 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "CirrOS 0.5.1", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "https://www.example.com/tba" - ], - "gx:resourcePolicy": "default: allow intent", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "https://www.example.com/tba" - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:osDistribution": "others" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 201.326592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 1.073741824 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "disabled", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 126100789.5663739 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - }, - { - "type": "gx:VMImage", - "gx:name": "Fedora Atomic 27 x86_64", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "TBA" - ], - "gx:resourcePolicy": "default: allow intent", - "gx:operatingSystem": { - "type": "gx:OperatingSystem", - "gx:copyrightOwnedBy": [ - "TBA" - ], - "gx:license": [ - "TBA" - ], - "gx:resourcePolicy": [ - "default: allow intent" - ], - "gx:osDistribution": "others" - }, - "gx:cpuReq": { - "type": "gx:CPU", - "gx:cpuArchitecture": "x86-64", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:ramReq": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 201.326592 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:rootDiskReq": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 1.073741824 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:secureBoot": { - "type": "xsd:boolean", - "@value": false - }, - "gx:vPMU": { - "type": "xsd:boolean", - "@value": false - }, - "gx:multiQueues": { - "type": "xsd:boolean", - "@value": false - }, - "gx:updateStrategy": { - "type": "gx:UpdateStrategy" - }, - "gx:licenseIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:maintenance": { - "type": "gx:MaintenanceSubscription", - "gx:subscriptionIncluded": { - "type": "xsd:boolean", - "@value": false - }, - "gx:subscriptionRequired": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:vmImageDiskFormat": "RAW", - "gx:hypervisorType": "other", - "gx:firmwareType": "other", - "gx:hwRngTypeOfImage": "None", - "gx:watchDogAction": "disabled", - "null": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 689186532.6737163 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - } - } - ], - "gx:instantiationReq": [ - { - "type": "gx:ServerFlavor", - "gx:name": "XXS", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 1 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 512.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 10.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "XS", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 1 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 1024.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 10.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "S", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 1 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 2048.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 15.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "S.mem+", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 1 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 4096.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 15.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "M", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 2 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 4096.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 25.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "M.mem+", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 2 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8192.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 25.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "L", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 4 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 8192.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 50.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "L.mem+", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 4 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 16384.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 50.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "XL", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 8 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 16384.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 100.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - }, - { - "type": "gx:ServerFlavor", - "gx:name": "XL.mem+", - "gx:cpu": { - "type": "gx:CPU", - "gx:cpuArchitecture": "Other", - "gx:smtEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:numberOfCores": 8 - }, - "gx:ram": { - "type": "gx:Memory", - "gx:memorySize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 32768.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/MegaBYTE" - }, - "gx:memoryClass": "other", - "gx:memoryRank": "other", - "gx:eccEnabled": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hardwareEncryption": { - "type": "xsd:boolean", - "@value": false - } - }, - "gx:bootVolume": { - "type": "gx:Disk", - "gx:diskSize": { - "type": "gx:MemorySize", - "qudt:value": { - "type": "xsd:float", - "@value": 100.0 - }, - "qudt:unit": "https://qudt.org/vocab/unit/GigaBYTE" - }, - "gx:diskType": "other", - "gx:diskBusType": "other" - }, - "gx:hardwareAssistedVirtualization": { - "type": "xsd:boolean", - "@value": false - }, - "gx:hwRngTypeOfFlavor": "None" - } - ] - }, - "proof": { - "type": "JsonWebSignature2020", - "created": "2024-10-15T11:22:37.820455+00:00", - "proofPurpose": "assertionMethod", - "verificationMethod": "did:web:cloudandheat.com#JWK2020-X509-0", - "jws": "eyJhbGciOiJQUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..speMDioXstiTam7wHdzHk25dRNLz7z9zC0XsZYstp5qwN-zimFW1pxajCQL79i-i-nTCbLZeSbLF7pkf5ZOGQ07YeldnZFs5JpWxcc0F57GLtFxrsPbha4156tpLGXxyZyH2r7XmIhwwTPfSP-uV9j56zwhfwzI3TA4Y0fuf3yb0pZ-Kc7lsjLpQA7oIpVf5WNMEYoRf7OPFdXCxsNk9xouZ0jVt4Kjz1EaxF9phynwnirb0yDwtNY-XoXWhyXLf_npZojNuOt_nfzgPPB1r2XNoD7FQuP8rvFIjmFkNVWgn9QL6JaQaLmaAnJIF4LnAbpjTpD4QosaOQB4QqW0SF-Q_y4cBVzpSKxhXFBDV707gO52zkIwtS6nDvdQ86WZ6A7bp5NA1KNegWS9JkcChyE63pezOcYyz3_REQHnr28Wu-qGxjXdl3Oheh77OxgAKqswyQKFPl6vLetaKUQPDJmqICFoM7C3maciSHWqZqWVI2UwIutQJ0UXQ94_4coopXsGdLWSJ94CcGqEpMHDBD_m6aX366C6y7E7ltLuewuq4ZwOlDSFoKzW3FyfmcHPisYlDxrPJjcPoNnB15NBv4eYrHmgutIDkeGslVgwBPmaOslbBWyNCKEaA9h6ybTLYLvnHXJOCtQJbQVt1YgMhxObi7kQNRLMdeIROrK7T2JI" - } -} \ No newline at end of file From 2c5fba7bd1558e7850dacf2511f40de290d74966 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Thu, 17 Oct 2024 10:16:42 +0200 Subject: [PATCH 14/20] Revert move cli.py out Signed-off-by: Anja Strunk --- README.md | 4 ++++ cli.py => generator/cli.py | 2 +- tests/test_cli.py | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) rename cli.py => generator/cli.py (99%) diff --git a/README.md b/README.md index cc1d3ee..1ae2dfb 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ ![Static Badge](https://img.shields.io/badge/version-1.0.0-green) ![Static Badge](https://img.shields.io/badge/Gaia--X_Release-Tagus-blue?color=%23D901D9) ![Static Badge](https://img.shields.io/badge/Gaia--X_Compliance-Conformity-blue?color=%23D901D9) +![Python 3.10](https://img.shields.io/badge/python-3.10-blue.svg) + Tool for creating compliant Gaia-X Credentials, previously known as Gaia-X Self-Description, for SCS-compliant cloud infrastructures. To get familiar with Gaia-X Credentials, please consult the corresponding [documentation](https://docs.gaia-x.eu/). @@ -80,6 +82,8 @@ Installing dependecies into a Python [virtualenv](https://virtualenv.pypa.io/en/ pip install -r requirements.txt ``` +Please use python version 3.10! + ### Cloud Service Provider #### 1. Create configuration file diff --git a/cli.py b/generator/cli.py similarity index 99% rename from cli.py rename to generator/cli.py index d6f8caf..94271b4 100755 --- a/cli.py +++ b/generator/cli.py @@ -220,7 +220,7 @@ def init_openstack_connection(cloud: str, timeout: int = 12) -> Connection: return conn -def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int = 12) -> dict: +def create_vmso_vcs(conf: Config, cloud: str, csp_vcs: List[dict], timeout: int = 12) -> dict[dict]: """ Create Gaia-X Credentials for Virtual Machine Service Offering. This means - Gaia-X Credential of OpenStack Cloud as ServiceOffering with mandatory attributes diff --git a/tests/test_cli.py b/tests/test_cli.py index b1d4713..13bbcbe 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -8,8 +8,8 @@ from cryptography.hazmat.primitives.asymmetric import rsa from jwcrypto.jwt import JWK -import cli -from generator.common import config, const +from generator import cli +from generator.common import config from generator.common.gx_schema import (DataAccountExport, TermsAndConditions, VirtualMachineServiceOffering) from tests.common import MockConnection, get_absolute_path From 88d0fc66931c53d0d59794521c9c655e5c8e5c0b Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Thu, 17 Oct 2024 10:18:40 +0200 Subject: [PATCH 15/20] Fix test cases Signed-off-by: Anja Strunk --- tests/test_cli.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/test_cli.py b/tests/test_cli.py index 13bbcbe..ba726cf 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -21,7 +21,7 @@ class CliTestCase(unittest.TestCase): @patch("generator.common.crypto.load_jwk_from_file") @patch("generator.discovery.openstack.openstack_discovery.OpenstackDiscovery.discover") @patch("openstack.connect") - @patch("cli._print_vcs") + @patch("generator.cli._print_vcs") def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gxdch_req_compl): # Mock openstack calls cli_print_vs.return_value = None @@ -63,8 +63,8 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx self.assertIsNotNone(vcs['vp_so']) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("cli.create_vmso_vcs") - @patch("cli._print_vcs") + @patch("generator.cli.create_vmso_vcs") + @patch("generator.cli._print_vcs") def test_openstack(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -82,8 +82,8 @@ def test_openstack(self, cli_print_vs, gen_vmso, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("cli.create_vmso_vcs") - @patch("cli._print_vcs") + @patch("generator.cli.create_vmso_vcs") + @patch("generator.cli._print_vcs") def test_openstack_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -101,8 +101,8 @@ def test_openstack_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("cli.create_vmso_vcs") - @patch("cli._print_vcs") + @patch("generator.cli.create_vmso_vcs") + @patch("generator.cli._print_vcs") def test_openstack_no_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -121,8 +121,8 @@ def test_openstack_no_auto_sign(self, cli_print_vs, gen_vmso, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("cli.create_vmso_vcs") - @patch("cli._print_vcs") + @patch("generator.cli.create_vmso_vcs") + @patch("generator.cli._print_vcs") def test_openstack_sign(self, cli_print_vs, gen_vmso, gen_csp): cli_print_vs.return_value = None gen_vmso.return_value = {"foo": "foo"} @@ -152,7 +152,7 @@ def test_init_connection(self, os_connect): self.assertIsNotNone(con) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("cli._print_vcs") + @patch("generator.cli._print_vcs") def test_csp_auto_sign(self, cli_print_vs, gen_csp): cli_print_vs.return_value = None gen_csp.return_value = {"vc": "bar"} @@ -167,7 +167,7 @@ def test_csp_auto_sign(self, cli_print_vs, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("cli._print_vcs") + @patch("generator.cli._print_vcs") def test_csp_sign(self, cli_print_vs, gen_csp): cli_print_vs.return_value = None gen_csp.return_value = {"vc": "bar"} @@ -182,7 +182,7 @@ def test_csp_sign(self, cli_print_vs, gen_csp): self.assertEqual(0, result.exit_code) @patch("generator.discovery.csp_generator.CspGenerator.generate") - @patch("cli._print_vcs") + @patch("generator.cli._print_vcs") def test_csp_no_auto_sign(self, cli_print_vs, gen_csp): cli_print_vs.return_value = None gen_csp.return_value = {"vc": "bar"} From bca09f3b8be6312fdc6de40dd2a6f665306b5e44 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Thu, 17 Oct 2024 10:26:46 +0200 Subject: [PATCH 16/20] Update README.md Signed-off-by: Anja Strunk --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1ae2dfb..68adce7 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ gx-credential-generator requires some configuration options. See [configuration] Create Gaia-X Credential for a CSP without specifying a configuration file. This implies the default path at `/etc/gx-credential-generator/config.yaml`, which must exist: ```commandline -python3 -m cli csp +python3 -m generator.cli csp ``` Gaia-X terms and conditions are displayed and you are prompted to agree to them. Type 'y' to agree or 'n' to disagree. @@ -113,19 +113,19 @@ Each Gaia-X Credential is serialized in [JSON-LD](https://json-ld.org/) and stor Gaia-X Credential files are placed in the current working directory, by default. To change the output directory use the parameter `--out-dir`: ```commandline -python3 -m cli csp --out-dir=my-output-dir +python3 -m generator.cli csp --out-dir=my-output-dir ``` Running the gx-credential-generator with a specified configuration file path using the parameter `--config`: ```commandline -python3 -m cli csp --config=my-config.yaml +python3 -m generator.cli csp --config=my-config.yaml ``` You can avoid interactive prompt for Gaia-X terms and conditions agreement using the option `--auto-sign`. This implies you agree to them: ```commandline -python3 -m cli csp --auto-sign +python3 -m generator.cli csp --auto-sign ``` ### OpenStack @@ -155,7 +155,7 @@ The command to run gx-credential-generator for OpenStack clouds is similar to th Create Gaia-X Credential for an OpenStack cloud ```bash - python3 -m cli openstack + python3 -m generator.cli openstack ``` (`` is a placeholder for the name of the desired entry in `clouds.yaml`) From 033fca93e902e52acd9239acb7df9095c9f2dedd Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Thu, 17 Oct 2024 10:30:42 +0200 Subject: [PATCH 17/20] Fix markdown lint Signed-off-by: Anja Strunk --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 68adce7..923a3d1 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ ![Static Badge](https://img.shields.io/badge/Gaia--X_Compliance-Conformity-blue?color=%23D901D9) ![Python 3.10](https://img.shields.io/badge/python-3.10-blue.svg) - Tool for creating compliant Gaia-X Credentials, previously known as Gaia-X Self-Description, for SCS-compliant cloud infrastructures. To get familiar with Gaia-X Credentials, please consult the corresponding [documentation](https://docs.gaia-x.eu/). From e66103b5c32721dac6dea76aa0c2c1f46f6f312b Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Fri, 25 Oct 2024 11:05:09 +0200 Subject: [PATCH 18/20] Move to new Gaia-X Ontologx and support volume types Signed-off-by: Anja Strunk --- generator/common/gx_schema.py | 38481 +++++++++++++--- generator/common/json_ld.py | 6 +- .../openstack/openstack_discovery.py | 31 +- .../openstack/volume_type_discovery.py | 31 +- tests/common.py | 6 +- tests/test_cli.py | 6 +- tests/test_json_ld.py | 28 +- tests/test_server_flavor_discovery.py | 4 +- tests/test_volume_types_discovery.py | 51 +- 9 files changed, 31591 insertions(+), 7053 deletions(-) diff --git a/generator/common/gx_schema.py b/generator/common/gx_schema.py index 7a001ed..4a15ccb 100644 --- a/generator/common/gx_schema.py +++ b/generator/common/gx_schema.py @@ -1,34 +1,29 @@ # Auto generated from gaia-x.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-05-31T11:26:50 +# Generation date: 2024-10-24T13:35:54 # Schema: gaia-x # -# id: https://w3id.org/gaia-x/deployment#gaia-x +# id: https://w3id.org/gaia-x/development#gaia-x # description: # license: https://creativecommons.org/publicdomain/zero/1.0/ import dataclasses import re +from jsonasobj2 import JsonObj, as_dict +from typing import Optional, List, Union, Dict, ClassVar, Any from dataclasses import dataclass -from datetime import date, datetime -from typing import Any, ClassVar, Dict, List, Optional, Union +from datetime import date, datetime, time +from linkml_runtime.linkml_model.meta import EnumDefinition, PermissibleValue, PvFormulaOptions -from jsonasobj2 import JsonObj, as_dict -from linkml_runtime.linkml_model.meta import (EnumDefinition, PermissibleValue, - PvFormulaOptions) -from linkml_runtime.linkml_model.types import (Boolean, Date, Datetime, Float, - Integer, String, Uri) -from linkml_runtime.utils.curienamespace import CurieNamespace -from linkml_runtime.utils.dataclass_extensions_376 import \ - dataclasses_init_fn_with_kwargs -from linkml_runtime.utils.enumerations import EnumDefinitionImpl -from linkml_runtime.utils.formatutils import camelcase, sfx, underscore -from linkml_runtime.utils.metamodelcore import (URI, Bool, XSDDate, - XSDDateTime, bnode, empty_dict, - empty_list) from linkml_runtime.utils.slot import Slot -from linkml_runtime.utils.yamlutils import (YAMLRoot, extended_float, - extended_int, extended_str) +from linkml_runtime.utils.metamodelcore import empty_list, empty_dict, bnode +from linkml_runtime.utils.yamlutils import YAMLRoot, extended_str, extended_float, extended_int +from linkml_runtime.utils.dataclass_extensions_376 import dataclasses_init_fn_with_kwargs +from linkml_runtime.utils.formatutils import camelcase, underscore, sfx +from linkml_runtime.utils.enumerations import EnumDefinitionImpl from rdflib import Namespace, URIRef +from linkml_runtime.utils.curienamespace import CurieNamespace +from linkml_runtime.linkml_model.types import Boolean, Date, Datetime, Float, Integer, String, Uri +from linkml_runtime.utils.metamodelcore import Bool, URI, XSDDate, XSDDateTime metamodel_version = "1.7.0" version = None @@ -37,18 +32,26 @@ dataclasses._init_fn = dataclasses_init_fn_with_kwargs # Namespaces -GX = CurieNamespace('gx', 'https://w3id.org/gaia-x/deployment#') +DCAT = CurieNamespace('dcat', 'http://www.w3.org/ns/dcat#') +DCT = CurieNamespace('dct', 'http://purl.org/dc/terms/') +GX = CurieNamespace('gx', 'https://w3id.org/gaia-x/development#') +HTTPS_SCHEMA = CurieNamespace('https_schema', 'https://schema.org/') +HTTPS_VCARD = CurieNamespace('https_vcard', 'https://www.w3.org/2006/vcard/ns#') LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/') +ODRL = CurieNamespace('odrl', 'http://www.w3.org/ns/odrl/2/') QUDT = CurieNamespace('qudt', 'http://qudt.org/vocab/') QUDT_SCHEMA = CurieNamespace('qudt_schema', 'http://qudt.org/schema/qudt/') -SCHEMA = CurieNamespace('schema', 'http://schema.org/') -VCARD = CurieNamespace('vcard', 'http://www.w3.org/2006/vcard/ns#') +RDFS = CurieNamespace('rdfs', 'http://www.w3.org/2000/01/rdf-schema#') DEFAULT_ = GX # Types # Class references +class InterconnectionPointIdentifierCompleteIPI(extended_str): + pass + + class LocalRegistrationNumberLocal(extended_str): pass @@ -69,11 +72,35 @@ class EUIDEuid(extended_str): pass +class TaxIDTaxId(extended_str): + pass + + class LegalPersonRegistrationNumber(extended_str): pass -class InterconnectionPointIdentifierCompleteIPI(extended_str): +class InternetServiceProviderRegistrationNumber(LegalPersonRegistrationNumber): + pass + + +class DataProviderRegistrationNumber(LegalPersonRegistrationNumber): + pass + + +class DataLicensorRegistrationNumber(LegalPersonRegistrationNumber): + pass + + +class DataProducerRegistrationNumber(LegalPersonRegistrationNumber): + pass + + +class DataConsumerRegistrationNumber(LegalPersonRegistrationNumber): + pass + + +class FederatorRegistrationNumber(LegalPersonRegistrationNumber): pass @@ -89,23 +116,25 @@ class GaiaX(YAMLRoot): class_model_uri: ClassVar[URIRef] = GX.GaiaX -@dataclass +@dataclass(repr=False) class Address(YAMLRoot): """ Full address of the entity. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = VCARD["Address"] - class_class_curie: ClassVar[str] = "vcard:Address" + class_class_uri: ClassVar[URIRef] = GX["Address"] + class_class_curie: ClassVar[str] = "gx:Address" class_name: ClassVar[str] = "Address" class_model_uri: ClassVar[URIRef] = GX.Address countryCode: str = None + countryName: Optional[str] = None gps: Optional[Union[Union[dict, "GPSLocation"], List[Union[dict, "GPSLocation"]]]] = empty_list() streetAddress: Optional[str] = None postalCode: Optional[str] = None locality: Optional[str] = None + region: Optional[Union[str, "NUTS2Region"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.countryCode): @@ -113,7 +142,10 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.countryCode, str): self.countryCode = str(self.countryCode) - #self._normalize_inlined_as_dict(slot_name="gps", slot_type=GPSLocation, key_name="latitude", keyed=False) + if self.countryName is not None and not isinstance(self.countryName, str): + self.countryName = str(self.countryName) + + self._normalize_inlined_as_dict(slot_name="gps", slot_type=GPSLocation, key_name="latitude", keyed=False) if self.streetAddress is not None and not isinstance(self.streetAddress, str): self.streetAddress = str(self.streetAddress) @@ -124,10 +156,13 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.locality is not None and not isinstance(self.locality, str): self.locality = str(self.locality) + if self.region is not None and not isinstance(self.region, NUTS2Region): + self.region = NUTS2Region(self.region) + super().__post_init__(**kwargs) -@dataclass +@dataclass(repr=False) class GPSLocation(YAMLRoot): """ Physical GPS coordinates in ISO 6709:2008/Cor 1:2009 format. @@ -164,7 +199,7 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): super().__post_init__(**kwargs) -@dataclass +@dataclass(repr=False) class GPSUnit(YAMLRoot): """ Definition of a geographical point. @@ -199,3169 +234,5359 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): super().__post_init__(**kwargs) -@dataclass -class GaiaXEntity(YAMLRoot): +@dataclass(repr=False) +class ComputeFunctionQuotas(YAMLRoot): """ - Root class for Gaia-X entities. + Attributes describing quotas for compute functions """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["GaiaXEntity"] - class_class_curie: ClassVar[str] = "gx:GaiaXEntity" - class_name: ClassVar[str] = "GaiaXEntity" - class_model_uri: ClassVar[URIRef] = GX.GaiaXEntity + class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionQuotas"] + class_class_curie: ClassVar[str] = "gx:ComputeFunctionQuotas" + class_name: ClassVar[str] = "ComputeFunctionQuotas" + class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionQuotas - name: Optional[str] = None - description: Optional[str] = None + functionMaximumNumber: Optional[int] = None + functionStorageLimit: Optional[Union[dict, "MemorySize"]] = None + functionTimeLimit: Optional[Union[dict, "Time"]] = None + functionMemoryLimit: Optional[Union[dict, "MemorySize"]] = None + functionSizeLimit: Optional[Union[dict, "MemorySize"]] = None + functionConcurrencyLimit: Optional[int] = None + functionRequestSizeLimit: Optional[Union[dict, "MemorySize"]] = None + functionResponseSizeLimit: Optional[Union[dict, "MemorySize"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.name is not None and not isinstance(self.name, str): - self.name = str(self.name) + if self.functionMaximumNumber is not None and not isinstance(self.functionMaximumNumber, int): + self.functionMaximumNumber = int(self.functionMaximumNumber) - if self.description is not None and not isinstance(self.description, str): - self.description = str(self.description) + if self.functionStorageLimit is not None and not isinstance(self.functionStorageLimit, MemorySize): + self.functionStorageLimit = MemorySize(**as_dict(self.functionStorageLimit)) + + if self.functionTimeLimit is not None and not isinstance(self.functionTimeLimit, Time): + self.functionTimeLimit = Time(**as_dict(self.functionTimeLimit)) + + if self.functionMemoryLimit is not None and not isinstance(self.functionMemoryLimit, MemorySize): + self.functionMemoryLimit = MemorySize(**as_dict(self.functionMemoryLimit)) + + if self.functionSizeLimit is not None and not isinstance(self.functionSizeLimit, MemorySize): + self.functionSizeLimit = MemorySize(**as_dict(self.functionSizeLimit)) + + if self.functionConcurrencyLimit is not None and not isinstance(self.functionConcurrencyLimit, int): + self.functionConcurrencyLimit = int(self.functionConcurrencyLimit) + + if self.functionRequestSizeLimit is not None and not isinstance(self.functionRequestSizeLimit, MemorySize): + self.functionRequestSizeLimit = MemorySize(**as_dict(self.functionRequestSizeLimit)) + + if self.functionResponseSizeLimit is not None and not isinstance(self.functionResponseSizeLimit, MemorySize): + self.functionResponseSizeLimit = MemorySize(**as_dict(self.functionResponseSizeLimit)) super().__post_init__(**kwargs) -@dataclass -class Encryption(YAMLRoot): +@dataclass(repr=False) +class ComputeFunctionRuntime(YAMLRoot): """ - Encryption capabilities of a Gaia-X entity. + Attributes describing function runtimes """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Encryption"] - class_class_curie: ClassVar[str] = "gx:Encryption" - class_name: ClassVar[str] = "Encryption" - class_model_uri: ClassVar[URIRef] = GX.Encryption + class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionRuntime"] + class_class_curie: ClassVar[str] = "gx:ComputeFunctionRuntime" + class_name: ClassVar[str] = "ComputeFunctionRuntime" + class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionRuntime - cipher: Union[str, "EncryptionAlgorithm"] = None - keyManagement: Union[str, "KeyManagement"] = None + supportedLanguage: Union[str, "ComputeFunctionLanguage"] = None + supportedVersion: Union[str, List[str]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.cipher): - self.MissingRequiredField("cipher") - if not isinstance(self.cipher, EncryptionAlgorithm): - self.cipher = EncryptionAlgorithm(self.cipher) + if self._is_empty(self.supportedLanguage): + self.MissingRequiredField("supportedLanguage") + if not isinstance(self.supportedLanguage, ComputeFunctionLanguage): + self.supportedLanguage = ComputeFunctionLanguage(self.supportedLanguage) - if self._is_empty(self.keyManagement): - self.MissingRequiredField("keyManagement") - if not isinstance(self.keyManagement, KeyManagement): - self.keyManagement = KeyManagement(self.keyManagement) + if self._is_empty(self.supportedVersion): + self.MissingRequiredField("supportedVersion") + if not isinstance(self.supportedVersion, list): + self.supportedVersion = [self.supportedVersion] if self.supportedVersion is not None else [] + self.supportedVersion = [v if isinstance(v, str) else str(v) for v in self.supportedVersion] super().__post_init__(**kwargs) -@dataclass -class CheckSum(YAMLRoot): +@dataclass(repr=False) +class ComputeFunctionTrigger(YAMLRoot): """ - Detail on how to calculate or verify a checksum. + Attributes describing Compute Function Trigger """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["CheckSum"] - class_class_curie: ClassVar[str] = "gx:CheckSum" - class_name: ClassVar[str] = "CheckSum" - class_model_uri: ClassVar[URIRef] = GX.CheckSum + class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionTrigger"] + class_class_curie: ClassVar[str] = "gx:ComputeFunctionTrigger" + class_name: ClassVar[str] = "ComputeFunctionTrigger" + class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionTrigger - checkSumCalculation: Union[str, "ChecksumAlgorithm"] = None - checkSumValue: str = None + triggeringService: Optional[Union[dict, "ServiceOffering"]] = None + triggeringEvent: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.checkSumCalculation): - self.MissingRequiredField("checkSumCalculation") - if not isinstance(self.checkSumCalculation, ChecksumAlgorithm): - self.checkSumCalculation = ChecksumAlgorithm(self.checkSumCalculation) + if self.triggeringService is not None and not isinstance(self.triggeringService, ServiceOffering): + self.triggeringService = ServiceOffering(**as_dict(self.triggeringService)) - if self._is_empty(self.checkSumValue): - self.MissingRequiredField("checkSumValue") - if not isinstance(self.checkSumValue, str): - self.checkSumValue = str(self.checkSumValue) + if not isinstance(self.triggeringEvent, list): + self.triggeringEvent = [self.triggeringEvent] if self.triggeringEvent is not None else [] + self.triggeringEvent = [v if isinstance(v, str) else str(v) for v in self.triggeringEvent] super().__post_init__(**kwargs) -@dataclass -class Signature(YAMLRoot): +@dataclass(repr=False) +class InterconnectionPointIdentifier(YAMLRoot): + """ + Interconnection Point Identifier is a unique Service Access Point that identifies the location where resources can + interconnect. + """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Signature"] - class_class_curie: ClassVar[str] = "gx:Signature" - class_name: ClassVar[str] = "Signature" - class_model_uri: ClassVar[URIRef] = GX.Signature + class_class_uri: ClassVar[URIRef] = GX["InterconnectionPointIdentifier"] + class_class_curie: ClassVar[str] = "gx:InterconnectionPointIdentifier" + class_name: ClassVar[str] = "InterconnectionPointIdentifier" + class_model_uri: ClassVar[URIRef] = GX.InterconnectionPointIdentifier - signatureValue: str = None - hashAlgorithm: Union[str, "ChecksumAlgorithm"] = None - signatureAlgorithm: Union[str, "SignatureAlgorithm"] = None + completeIPI: Union[str, InterconnectionPointIdentifierCompleteIPI] = None + ipiType: Optional[Union[str, "IPIType"]] = "Other" + ipiProvider: Optional[str] = None + specificParameters: Optional[str] = None + datacenterAllocation: Optional[Union[dict, "DatacenterAllocation"]] = None + macAddress: Optional[str] = None + ipAddress: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.signatureValue): - self.MissingRequiredField("signatureValue") - if not isinstance(self.signatureValue, str): - self.signatureValue = str(self.signatureValue) + if self._is_empty(self.completeIPI): + self.MissingRequiredField("completeIPI") + if not isinstance(self.completeIPI, InterconnectionPointIdentifierCompleteIPI): + self.completeIPI = InterconnectionPointIdentifierCompleteIPI(self.completeIPI) - if self._is_empty(self.hashAlgorithm): - self.MissingRequiredField("hashAlgorithm") - if not isinstance(self.hashAlgorithm, ChecksumAlgorithm): - self.hashAlgorithm = ChecksumAlgorithm(self.hashAlgorithm) + if self.ipiType is not None and not isinstance(self.ipiType, IPIType): + self.ipiType = IPIType(self.ipiType) - if self._is_empty(self.signatureAlgorithm): - self.MissingRequiredField("signatureAlgorithm") - if not isinstance(self.signatureAlgorithm, SignatureAlgorithm): - self.signatureAlgorithm = SignatureAlgorithm(self.signatureAlgorithm) + if self.ipiProvider is not None and not isinstance(self.ipiProvider, str): + self.ipiProvider = str(self.ipiProvider) + + if self.specificParameters is not None and not isinstance(self.specificParameters, str): + self.specificParameters = str(self.specificParameters) + + if self.datacenterAllocation is not None and not isinstance(self.datacenterAllocation, DatacenterAllocation): + self.datacenterAllocation = DatacenterAllocation(**as_dict(self.datacenterAllocation)) + + if self.macAddress is not None and not isinstance(self.macAddress, str): + self.macAddress = str(self.macAddress) + + if self.ipAddress is not None and not isinstance(self.ipAddress, str): + self.ipAddress = str(self.ipAddress) super().__post_init__(**kwargs) -@dataclass -class Device(YAMLRoot): +@dataclass(repr=False) +class DatacenterAllocation(YAMLRoot): """ - Details with respect to properties and capabilities of a hardware or virtualized device. + Details specific situation within the datacenter where the service can be accessed. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Device"] - class_class_curie: ClassVar[str] = "gx:Device" - class_name: ClassVar[str] = "Device" - class_model_uri: ClassVar[URIRef] = GX.Device + class_class_uri: ClassVar[URIRef] = GX["DatacenterAllocation"] + class_class_curie: ClassVar[str] = "gx:DatacenterAllocation" + class_name: ClassVar[str] = "DatacenterAllocation" + class_model_uri: ClassVar[URIRef] = GX.DatacenterAllocation - vendor: Optional[str] = None - generation: Optional[str] = None - defaultOversubscriptionRatio: Optional[int] = None - supportedOversubscriptionRatio: Optional[int] = None + refersTo: Union[dict, "Datacenter"] = None + floor: Optional[str] = None + rackNumber: Optional[str] = None + patchPanel: Optional[str] = None + portNumber: Optional[int] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.vendor is not None and not isinstance(self.vendor, str): - self.vendor = str(self.vendor) + if self._is_empty(self.refersTo): + self.MissingRequiredField("refersTo") + if not isinstance(self.refersTo, Datacenter): + self.refersTo = Datacenter(**as_dict(self.refersTo)) - if self.generation is not None and not isinstance(self.generation, str): - self.generation = str(self.generation) + if self.floor is not None and not isinstance(self.floor, str): + self.floor = str(self.floor) - if self.defaultOversubscriptionRatio is not None and not isinstance(self.defaultOversubscriptionRatio, int): - self.defaultOversubscriptionRatio = int(self.defaultOversubscriptionRatio) + if self.rackNumber is not None and not isinstance(self.rackNumber, str): + self.rackNumber = str(self.rackNumber) - if self.supportedOversubscriptionRatio is not None and not isinstance(self.supportedOversubscriptionRatio, int): - self.supportedOversubscriptionRatio = int(self.supportedOversubscriptionRatio) + if self.patchPanel is not None and not isinstance(self.patchPanel, str): + self.patchPanel = str(self.patchPanel) + + if self.portNumber is not None and not isinstance(self.portNumber, int): + self.portNumber = int(self.portNumber) super().__post_init__(**kwargs) -@dataclass -class CPU(Device): +@dataclass(repr=False) +class VLANConfiguration(YAMLRoot): """ - Computational processing unit of virtual and physical machines. + TDB """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["CPU"] - class_class_curie: ClassVar[str] = "gx:CPU" - class_name: ClassVar[str] = "CPU" - class_model_uri: ClassVar[URIRef] = GX.CPU + class_class_uri: ClassVar[URIRef] = GX["VLANConfiguration"] + class_class_curie: ClassVar[str] = "gx:VLANConfiguration" + class_name: ClassVar[str] = "VLANConfiguration" + class_model_uri: ClassVar[URIRef] = GX.VLANConfiguration - cpuArchitecture: Optional[Union[str, "Architectures"]] = "Other" - cpuFlag: Optional[Union[str, List[str]]] = empty_list() - smtEnabled: Optional[Union[bool, Bool]] = False - numberOfCores: Optional[int] = None - numberOfThreads: Optional[int] = None - baseFrequency: Optional[Union[dict, "Frequency"]] = None - boostFrequency: Optional[Union[dict, "Frequency"]] = None - lastLevelCacheSize: Optional[Union[dict, "MemorySize"]] = None - thermalDesignPower: Optional[Union[dict, "Power"]] = None + vlanType: Optional[Union[str, "VlanType"]] = None + vlanTag: Optional[int] = None + vlanEtherType: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.cpuArchitecture is not None and not isinstance(self.cpuArchitecture, Architectures): - self.cpuArchitecture = Architectures(self.cpuArchitecture) - - if not isinstance(self.cpuFlag, list): - self.cpuFlag = [self.cpuFlag] if self.cpuFlag is not None else [] - self.cpuFlag = [v if isinstance(v, str) else str(v) for v in self.cpuFlag] - - if self.smtEnabled is not None and not isinstance(self.smtEnabled, Bool): - self.smtEnabled = Bool(self.smtEnabled) - - if self.numberOfCores is not None and not isinstance(self.numberOfCores, int): - self.numberOfCores = int(self.numberOfCores) - - if self.numberOfThreads is not None and not isinstance(self.numberOfThreads, int): - self.numberOfThreads = int(self.numberOfThreads) - - if self.baseFrequency is not None and not isinstance(self.baseFrequency, Frequency): - self.baseFrequency = Frequency(**as_dict(self.baseFrequency)) - - if self.boostFrequency is not None and not isinstance(self.boostFrequency, Frequency): - self.boostFrequency = Frequency(**as_dict(self.boostFrequency)) + if self.vlanType is not None and not isinstance(self.vlanType, VlanType): + self.vlanType = VlanType(self.vlanType) - if self.lastLevelCacheSize is not None and not isinstance(self.lastLevelCacheSize, MemorySize): - self.lastLevelCacheSize = MemorySize(**as_dict(self.lastLevelCacheSize)) + if self.vlanTag is not None and not isinstance(self.vlanTag, int): + self.vlanTag = int(self.vlanTag) - if self.thermalDesignPower is not None and not isinstance(self.thermalDesignPower, Power): - self.thermalDesignPower = Power(**as_dict(self.thermalDesignPower)) + if self.vlanEtherType is not None and not isinstance(self.vlanEtherType, str): + self.vlanEtherType = str(self.vlanEtherType) super().__post_init__(**kwargs) -@dataclass -class Disk(Device): +@dataclass(repr=False) +class ContactInformation(YAMLRoot): """ - Capabilities of a physical or virtual hard drive. + Contains contact details for an entity. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Disk"] - class_class_curie: ClassVar[str] = "gx:Disk" - class_name: ClassVar[str] = "Disk" - class_model_uri: ClassVar[URIRef] = GX.Disk + class_class_uri: ClassVar[URIRef] = GX["ContactInformation"] + class_class_curie: ClassVar[str] = "gx:ContactInformation" + class_name: ClassVar[str] = "ContactInformation" + class_model_uri: ClassVar[URIRef] = GX.ContactInformation - diskSize: Union[dict, "MemorySize"] = None - diskType: Optional[Union[str, "DiskType"]] = "other" - diskBusType: Optional[Union[str, "DiskBusType"]] = "other" + postalAddress: Optional[Union[dict, Address]] = None + email: Optional[str] = None + phoneNumber: Optional[str] = None + uri: Optional[Union[str, URI]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.diskSize): - self.MissingRequiredField("diskSize") - if not isinstance(self.diskSize, MemorySize): - self.diskSize = MemorySize(**as_dict(self.diskSize)) + if self.postalAddress is not None and not isinstance(self.postalAddress, Address): + self.postalAddress = Address(**as_dict(self.postalAddress)) - if self.diskType is not None and not isinstance(self.diskType, DiskType): - self.diskType = DiskType(self.diskType) + if self.email is not None and not isinstance(self.email, str): + self.email = str(self.email) - if self.diskBusType is not None and not isinstance(self.diskBusType, DiskBusType): - self.diskBusType = DiskBusType(self.diskBusType) + if self.phoneNumber is not None and not isinstance(self.phoneNumber, str): + self.phoneNumber = str(self.phoneNumber) + + if self.uri is not None and not isinstance(self.uri, URI): + self.uri = URI(self.uri) super().__post_init__(**kwargs) -@dataclass -class Endpoint(YAMLRoot): +@dataclass(repr=False) +class BaseContainerImage(YAMLRoot): """ - An endpoint is a mean to access and interact with a service or a resource. + A set of tags for an image and a repository link """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Endpoint"] - class_class_curie: ClassVar[str] = "gx:Endpoint" - class_name: ClassVar[str] = "Endpoint" - class_model_uri: ClassVar[URIRef] = GX.Endpoint + class_class_uri: ClassVar[URIRef] = GX["BaseContainerImage"] + class_class_curie: ClassVar[str] = "gx:BaseContainerImage" + class_name: ClassVar[str] = "BaseContainerImage" + class_model_uri: ClassVar[URIRef] = GX.BaseContainerImage - standardConformity: Union[Union[dict, "StandardConformity"], List[Union[dict, "StandardConformity"]]] = None - endpointURL: Optional[Union[str, URI]] = None - formalDescription: Optional[str] = None + containerImageLink: Union[str, URI] = None + containerImageTag: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.standardConformity): - self.MissingRequiredField("standardConformity") - #self._normalize_inlined_as_dict(slot_name="standardConformity", slot_type=StandardConformity, key_name="title", keyed=False) - - if self.endpointURL is not None and not isinstance(self.endpointURL, URI): - self.endpointURL = URI(self.endpointURL) + if self._is_empty(self.containerImageLink): + self.MissingRequiredField("containerImageLink") + if not isinstance(self.containerImageLink, URI): + self.containerImageLink = URI(self.containerImageLink) - if self.formalDescription is not None and not isinstance(self.formalDescription, str): - self.formalDescription = str(self.formalDescription) + if not isinstance(self.containerImageTag, list): + self.containerImageTag = [self.containerImageTag] if self.containerImageTag is not None else [] + self.containerImageTag = [v if isinstance(v, str) else str(v) for v in self.containerImageTag] super().__post_init__(**kwargs) -@dataclass -class GPU(Device): +@dataclass(repr=False) +class Encryption(YAMLRoot): """ - Graphical processing unit of virtual and physical machines. + Encryption capabilities of a Gaia-X entity. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["GPU"] - class_class_curie: ClassVar[str] = "gx:GPU" - class_name: ClassVar[str] = "GPU" - class_model_uri: ClassVar[URIRef] = GX.GPU + class_class_uri: ClassVar[URIRef] = GX["Encryption"] + class_class_curie: ClassVar[str] = "gx:Encryption" + class_name: ClassVar[str] = "Encryption" + class_model_uri: ClassVar[URIRef] = GX.Encryption - gpuMemory: Optional[Union[dict, "MemorySize"]] = None - gpuInterconnection: Optional[Union[str, "GPUInterconnetionTypes"]] = "none" - gpuProcessingUnits: Optional[int] = None - gpuPassthrough: Optional[Union[bool, Bool]] = False + cipher: Union[str, "EncryptionAlgorithm"] = None + keyManagement: Union[str, "KeyManagement"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.gpuMemory is not None and not isinstance(self.gpuMemory, MemorySize): - self.gpuMemory = MemorySize(**as_dict(self.gpuMemory)) - - if self.gpuInterconnection is not None and not isinstance(self.gpuInterconnection, GPUInterconnetionTypes): - self.gpuInterconnection = GPUInterconnetionTypes(self.gpuInterconnection) - - if self.gpuProcessingUnits is not None and not isinstance(self.gpuProcessingUnits, int): - self.gpuProcessingUnits = int(self.gpuProcessingUnits) + if self._is_empty(self.cipher): + self.MissingRequiredField("cipher") + if not isinstance(self.cipher, EncryptionAlgorithm): + self.cipher = EncryptionAlgorithm(self.cipher) - if self.gpuPassthrough is not None and not isinstance(self.gpuPassthrough, Bool): - self.gpuPassthrough = Bool(self.gpuPassthrough) + if self._is_empty(self.keyManagement): + self.MissingRequiredField("keyManagement") + if not isinstance(self.keyManagement, KeyManagement): + self.keyManagement = KeyManagement(self.keyManagement) super().__post_init__(**kwargs) -@dataclass -class MaintenanceSubscription(YAMLRoot): +@dataclass(repr=False) +class CheckSum(YAMLRoot): """ - A maintenance subscriptions gives access to bug fixes, security fixes and function updates from software vendor. + Detail on how to calculate or verify a checksum. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["MaintenanceSubscription"] - class_class_curie: ClassVar[str] = "gx:MaintenanceSubscription" - class_name: ClassVar[str] = "MaintenanceSubscription" - class_model_uri: ClassVar[URIRef] = GX.MaintenanceSubscription + class_class_uri: ClassVar[URIRef] = GX["CheckSum"] + class_class_curie: ClassVar[str] = "gx:CheckSum" + class_name: ClassVar[str] = "CheckSum" + class_model_uri: ClassVar[URIRef] = GX.CheckSum - subscriptionIncluded: Optional[Union[bool, Bool]] = False - subscriptionRequired: Optional[Union[bool, Bool]] = False - maintainedUntil: Optional[Union[str, XSDDate]] = None + checkSumCalculation: Union[str, "ChecksumAlgorithm"] = None + checkSumValue: str = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.subscriptionIncluded is not None and not isinstance(self.subscriptionIncluded, Bool): - self.subscriptionIncluded = Bool(self.subscriptionIncluded) - - if self.subscriptionRequired is not None and not isinstance(self.subscriptionRequired, Bool): - self.subscriptionRequired = Bool(self.subscriptionRequired) + if self._is_empty(self.checkSumCalculation): + self.MissingRequiredField("checkSumCalculation") + if not isinstance(self.checkSumCalculation, ChecksumAlgorithm): + self.checkSumCalculation = ChecksumAlgorithm(self.checkSumCalculation) - if self.maintainedUntil is not None and not isinstance(self.maintainedUntil, XSDDate): - self.maintainedUntil = XSDDate(self.maintainedUntil) + if self._is_empty(self.checkSumValue): + self.MissingRequiredField("checkSumValue") + if not isinstance(self.checkSumValue, str): + self.checkSumValue = str(self.checkSumValue) super().__post_init__(**kwargs) -@dataclass -class UpdateStrategy(YAMLRoot): - """ - Cloud service customer expect cloud images to be updated regularly, in order to always get the image with the - lasted patches. Technically, an updated image is a new image in cloud service' image catalogue having it's own - unique image ID and replaces its old version. It is recommended to hide outdated version, but keep them - referencable by its ID for a transition period for customers' convenience. This class defines important aspects of - providers image update policy. - """ +@dataclass(repr=False) +class Signature(YAMLRoot): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["UpdateStrategy"] - class_class_curie: ClassVar[str] = "gx:UpdateStrategy" - class_name: ClassVar[str] = "UpdateStrategy" - class_model_uri: ClassVar[URIRef] = GX.UpdateStrategy + class_class_uri: ClassVar[URIRef] = GX["Signature"] + class_class_curie: ClassVar[str] = "gx:Signature" + class_name: ClassVar[str] = "Signature" + class_model_uri: ClassVar[URIRef] = GX.Signature - replaceFrequency: Optional[Union[str, "UpdateFrequency"]] = None - hotfixHours: Optional[int] = None - oldVersionsValidUntil: Optional[str] = None - providedUntil: Optional[str] = None + signatureValue: str = None + hashAlgorithm: Union[str, "ChecksumAlgorithm"] = None + signatureAlgorithm: Union[str, "SignatureAlgorithm"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.replaceFrequency is not None and not isinstance(self.replaceFrequency, UpdateFrequency): - self.replaceFrequency = UpdateFrequency(self.replaceFrequency) - - if self.hotfixHours is not None and not isinstance(self.hotfixHours, int): - self.hotfixHours = int(self.hotfixHours) + if self._is_empty(self.signatureValue): + self.MissingRequiredField("signatureValue") + if not isinstance(self.signatureValue, str): + self.signatureValue = str(self.signatureValue) - if self.oldVersionsValidUntil is not None and not isinstance(self.oldVersionsValidUntil, str): - self.oldVersionsValidUntil = str(self.oldVersionsValidUntil) + if self._is_empty(self.hashAlgorithm): + self.MissingRequiredField("hashAlgorithm") + if not isinstance(self.hashAlgorithm, ChecksumAlgorithm): + self.hashAlgorithm = ChecksumAlgorithm(self.hashAlgorithm) - if self.providedUntil is not None and not isinstance(self.providedUntil, str): - self.providedUntil = str(self.providedUntil) + if self._is_empty(self.signatureAlgorithm): + self.MissingRequiredField("signatureAlgorithm") + if not isinstance(self.signatureAlgorithm, SignatureAlgorithm): + self.signatureAlgorithm = SignatureAlgorithm(self.signatureAlgorithm) super().__post_init__(**kwargs) -@dataclass -class LatestN(YAMLRoot): +@dataclass(repr=False) +class CustomerInstructions(YAMLRoot): """ - Number of latest N outdated image versions, which will be valid. + Defines how customers can instruct the provider regarding data processing. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["LatestN"] - class_class_curie: ClassVar[str] = "gx:LatestN" - class_name: ClassVar[str] = "Latest_N" - class_model_uri: ClassVar[URIRef] = GX.LatestN + class_class_uri: ClassVar[URIRef] = GX["CustomerInstructions"] + class_class_curie: ClassVar[str] = "gx:CustomerInstructions" + class_name: ClassVar[str] = "CustomerInstructions" + class_model_uri: ClassVar[URIRef] = GX.CustomerInstructions - value: Optional[int] = None + terms: Union[Union[dict, "LegalDocument"], List[Union[dict, "LegalDocument"]]] = None + means: Union[Union[dict, "LegalDocument"], List[Union[dict, "LegalDocument"]]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.value is not None and not isinstance(self.value, int): - self.value = int(self.value) + if self._is_empty(self.terms): + self.MissingRequiredField("terms") + self._normalize_inlined_as_dict(slot_name="terms", slot_type=LegalDocument, key_name="url", keyed=False) + + if self._is_empty(self.means): + self.MissingRequiredField("means") + self._normalize_inlined_as_dict(slot_name="means", slot_type=LegalDocument, key_name="url", keyed=False) super().__post_init__(**kwargs) -class InstantiationRequirement(GaiaXEntity): +class DataExchangeComponent(YAMLRoot): """ - A container class to gather all requirements for compute service offering instantiations. + A service/resource used to make a data resource available. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["InstantiationRequirement"] - class_class_curie: ClassVar[str] = "gx:InstantiationRequirement" - class_name: ClassVar[str] = "InstantiationRequirement" - class_model_uri: ClassVar[URIRef] = GX.InstantiationRequirement + class_class_uri: ClassVar[URIRef] = GX["DataExchangeComponent"] + class_class_curie: ClassVar[str] = "gx:DataExchangeComponent" + class_name: ClassVar[str] = "DataExchangeComponent" + class_model_uri: ClassVar[URIRef] = GX.DataExchangeComponent -@dataclass -class Issuer(YAMLRoot): - """ - An issuer of W3C Verifiable Credentials and Verifiable Presentations. - """ +@dataclass(repr=False) +class DataUsageAgreement(YAMLRoot): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Issuer"] - class_class_curie: ClassVar[str] = "gx:Issuer" - class_name: ClassVar[str] = "Issuer" - class_model_uri: ClassVar[URIRef] = GX.Issuer + class_class_uri: ClassVar[URIRef] = GX["DataUsageAgreement"] + class_class_curie: ClassVar[str] = "gx:DataUsageAgreement" + class_name: ClassVar[str] = "DataUsageAgreement" + class_model_uri: ClassVar[URIRef] = GX.DataUsageAgreement - gaiaxTermsAndConditions: Union[str, "GaiaXTermsAndConditions"] = None + producedBy: Union[str, DataProducerRegistrationNumber] = None + providedBy: Union[str, DataProviderRegistrationNumber] = None + dataUsageAgreementTrustAnchor: str = None + dataProduct: Union[dict, "DataProduct"] = None + signers: Union[Union[dict, "SignatureCheckType"], List[Union[dict, "SignatureCheckType"]]] = None + licensedBy: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.gaiaxTermsAndConditions): - self.MissingRequiredField("gaiaxTermsAndConditions") - if not isinstance(self.gaiaxTermsAndConditions, GaiaXTermsAndConditions): - self.gaiaxTermsAndConditions = GaiaXTermsAndConditions(self.gaiaxTermsAndConditions) + if self._is_empty(self.producedBy): + self.MissingRequiredField("producedBy") + if not isinstance(self.producedBy, DataProducerRegistrationNumber): + self.producedBy = DataProducerRegistrationNumber(self.producedBy) + + if self._is_empty(self.providedBy): + self.MissingRequiredField("providedBy") + if not isinstance(self.providedBy, DataProviderRegistrationNumber): + self.providedBy = DataProviderRegistrationNumber(self.providedBy) + + if self._is_empty(self.dataUsageAgreementTrustAnchor): + self.MissingRequiredField("dataUsageAgreementTrustAnchor") + if not isinstance(self.dataUsageAgreementTrustAnchor, str): + self.dataUsageAgreementTrustAnchor = str(self.dataUsageAgreementTrustAnchor) + + if self._is_empty(self.dataProduct): + self.MissingRequiredField("dataProduct") + if not isinstance(self.dataProduct, DataProduct): + self.dataProduct = DataProduct(**as_dict(self.dataProduct)) + + if self._is_empty(self.signers): + self.MissingRequiredField("signers") + self._normalize_inlined_as_dict(slot_name="signers", slot_type=SignatureCheckType, key_name="participantRole", keyed=False) + + if not isinstance(self.licensedBy, list): + self.licensedBy = [self.licensedBy] if self.licensedBy is not None else [] + self.licensedBy = [v if isinstance(v, str) else str(v) for v in self.licensedBy] super().__post_init__(**kwargs) -class RegistrationNumber(YAMLRoot): +@dataclass(repr=False) +class DataPortability(YAMLRoot): """ - Country's registration number, which identifies one specific entity. Allowed entries are Local, VatID, lei code, - EODI, and EUID. + Which resource of the service offering is concerned by this data portability measure. For example, backup files, + stored personal data, infrastructure description file (IaaS), etc. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["RegistrationNumber"] - class_class_curie: ClassVar[str] = "gx:RegistrationNumber" - class_name: ClassVar[str] = "RegistrationNumber" - class_model_uri: ClassVar[URIRef] = GX.RegistrationNumber + class_class_uri: ClassVar[URIRef] = GX["DataPortability"] + class_class_curie: ClassVar[str] = "gx:DataPortability" + class_name: ClassVar[str] = "DataPortability" + class_model_uri: ClassVar[URIRef] = GX.DataPortability + + resource: str = None + means: Union[str, List[str]] = None + documentations: Union[Union[str, URI], List[Union[str, URI]]] = None + legalDocument: Union[dict, "LegalDocument"] = None + deletionMethods: Union[str, List[str]] = None + deletionTimeframe: str = None + formats: Union[str, List[str]] = None + pricing: Union[str, URI] = None + contactInformation: Optional[Union[dict, ContactInformation]] = None + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.resource): + self.MissingRequiredField("resource") + if not isinstance(self.resource, str): + self.resource = str(self.resource) + + if self._is_empty(self.means): + self.MissingRequiredField("means") + if not isinstance(self.means, list): + self.means = [self.means] if self.means is not None else [] + self.means = [v if isinstance(v, str) else str(v) for v in self.means] + + if self._is_empty(self.documentations): + self.MissingRequiredField("documentations") + if not isinstance(self.documentations, list): + self.documentations = [self.documentations] if self.documentations is not None else [] + self.documentations = [v if isinstance(v, URI) else URI(v) for v in self.documentations] + + if self._is_empty(self.legalDocument): + self.MissingRequiredField("legalDocument") + if not isinstance(self.legalDocument, LegalDocument): + self.legalDocument = LegalDocument(**as_dict(self.legalDocument)) + + if self._is_empty(self.deletionMethods): + self.MissingRequiredField("deletionMethods") + if not isinstance(self.deletionMethods, list): + self.deletionMethods = [self.deletionMethods] if self.deletionMethods is not None else [] + self.deletionMethods = [v if isinstance(v, str) else str(v) for v in self.deletionMethods] + + if self._is_empty(self.deletionTimeframe): + self.MissingRequiredField("deletionTimeframe") + if not isinstance(self.deletionTimeframe, str): + self.deletionTimeframe = str(self.deletionTimeframe) + + if self._is_empty(self.formats): + self.MissingRequiredField("formats") + if not isinstance(self.formats, list): + self.formats = [self.formats] if self.formats is not None else [] + self.formats = [v if isinstance(v, str) else str(v) for v in self.formats] + + if self._is_empty(self.pricing): + self.MissingRequiredField("pricing") + if not isinstance(self.pricing, URI): + self.pricing = URI(self.pricing) + + if self.contactInformation is not None and not isinstance(self.contactInformation, ContactInformation): + self.contactInformation = ContactInformation(**as_dict(self.contactInformation)) -@dataclass -class LocalRegistrationNumber(RegistrationNumber): - _inherited_slots: ClassVar[List[str]] = [] + super().__post_init__(**kwargs) - class_class_uri: ClassVar[URIRef] = GX["LocalRegistrationNumber"] - class_class_curie: ClassVar[str] = "gx:LocalRegistrationNumber" - class_name: ClassVar[str] = "LocalRegistrationNumber" - class_model_uri: ClassVar[URIRef] = GX.LocalRegistrationNumber - local: Union[str, LocalRegistrationNumberLocal] = None +@dataclass(repr=False) +class Consent(YAMLRoot): + """ + Information on the legitimate processing of information related to PII. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["Consent"] + class_class_curie: ClassVar[str] = "gx:Consent" + class_name: ClassVar[str] = "Consent" + class_model_uri: ClassVar[URIRef] = GX.Consent + + legalBasis: str = None + dataProtectionContactPoint: Optional[Union[str, List[str]]] = empty_list() + purpose: Optional[Union[str, List[str]]] = empty_list() + consentWithdrawalContactPoint: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.local): - self.MissingRequiredField("local") - if not isinstance(self.local, LocalRegistrationNumberLocal): - self.local = LocalRegistrationNumberLocal(self.local) + if self._is_empty(self.legalBasis): + self.MissingRequiredField("legalBasis") + if not isinstance(self.legalBasis, str): + self.legalBasis = str(self.legalBasis) + + if not isinstance(self.dataProtectionContactPoint, list): + self.dataProtectionContactPoint = [self.dataProtectionContactPoint] if self.dataProtectionContactPoint is not None else [] + self.dataProtectionContactPoint = [v if isinstance(v, str) else str(v) for v in self.dataProtectionContactPoint] + + if not isinstance(self.purpose, list): + self.purpose = [self.purpose] if self.purpose is not None else [] + self.purpose = [v if isinstance(v, str) else str(v) for v in self.purpose] + + if not isinstance(self.consentWithdrawalContactPoint, list): + self.consentWithdrawalContactPoint = [self.consentWithdrawalContactPoint] if self.consentWithdrawalContactPoint is not None else [] + self.consentWithdrawalContactPoint = [v if isinstance(v, str) else str(v) for v in self.consentWithdrawalContactPoint] super().__post_init__(**kwargs) -@dataclass -class VatID(RegistrationNumber): +@dataclass(repr=False) +class DataTransfer(YAMLRoot): + """ + Defines the basic structure for data transfers, including reasons and scope. + """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["VatID"] - class_class_curie: ClassVar[str] = "gx:VatID" - class_name: ClassVar[str] = "VatID" - class_model_uri: ClassVar[URIRef] = GX.VatID + class_class_uri: ClassVar[URIRef] = GX["DataTransfer"] + class_class_curie: ClassVar[str] = "gx:DataTransfer" + class_name: ClassVar[str] = "DataTransfer" + class_model_uri: ClassVar[URIRef] = GX.DataTransfer - vatID: Union[str, VatIDVatID] = None + reason: str = None + scope: str = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.vatID): - self.MissingRequiredField("vatID") - if not isinstance(self.vatID, VatIDVatID): - self.vatID = VatIDVatID(self.vatID) + if self._is_empty(self.reason): + self.MissingRequiredField("reason") + if not isinstance(self.reason, str): + self.reason = str(self.reason) + + if self._is_empty(self.scope): + self.MissingRequiredField("scope") + if not isinstance(self.scope, str): + self.scope = str(self.scope) super().__post_init__(**kwargs) -@dataclass -class LeiCode(RegistrationNumber): +@dataclass(repr=False) +class Device(YAMLRoot): + """ + Details with respect to properties and capabilities of a hardware or virtualized device. + """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["LeiCode"] - class_class_curie: ClassVar[str] = "gx:LeiCode" - class_name: ClassVar[str] = "LeiCode" - class_model_uri: ClassVar[URIRef] = GX.LeiCode + class_class_uri: ClassVar[URIRef] = GX["Device"] + class_class_curie: ClassVar[str] = "gx:Device" + class_name: ClassVar[str] = "Device" + class_model_uri: ClassVar[URIRef] = GX.Device - leiCode: Union[str, LeiCodeLeiCode] = None + vendor: Optional[str] = None + generation: Optional[str] = None + defaultOversubscriptionRatio: Optional[int] = None + supportedOversubscriptionRatio: Optional[int] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.leiCode): - self.MissingRequiredField("leiCode") - if not isinstance(self.leiCode, LeiCodeLeiCode): - self.leiCode = LeiCodeLeiCode(self.leiCode) + if self.vendor is not None and not isinstance(self.vendor, str): + self.vendor = str(self.vendor) + + if self.generation is not None and not isinstance(self.generation, str): + self.generation = str(self.generation) + + if self.defaultOversubscriptionRatio is not None and not isinstance(self.defaultOversubscriptionRatio, int): + self.defaultOversubscriptionRatio = int(self.defaultOversubscriptionRatio) + + if self.supportedOversubscriptionRatio is not None and not isinstance(self.supportedOversubscriptionRatio, int): + self.supportedOversubscriptionRatio = int(self.supportedOversubscriptionRatio) super().__post_init__(**kwargs) -@dataclass -class EORI(RegistrationNumber): +@dataclass(repr=False) +class CPU(Device): + """ + Computational processing unit of virtual and physical machines. + """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["EORI"] - class_class_curie: ClassVar[str] = "gx:EORI" - class_name: ClassVar[str] = "EORI" - class_model_uri: ClassVar[URIRef] = GX.EORI + class_class_uri: ClassVar[URIRef] = GX["CPU"] + class_class_curie: ClassVar[str] = "gx:CPU" + class_name: ClassVar[str] = "CPU" + class_model_uri: ClassVar[URIRef] = GX.CPU - eori: Union[str, EORIEori] = None + cpuArchitecture: Optional[Union[str, "Architectures"]] = "Other" + cpuFlag: Optional[Union[str, List[str]]] = empty_list() + smtEnabled: Optional[Union[bool, Bool]] = False + numberOfCores: Optional[int] = None + numberOfThreads: Optional[int] = None + baseFrequency: Optional[Union[dict, "Frequency"]] = None + boostFrequency: Optional[Union[dict, "Frequency"]] = None + lastLevelCacheSize: Optional[Union[dict, "MemorySize"]] = None + thermalDesignPower: Optional[Union[dict, "Power"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.eori): - self.MissingRequiredField("eori") - if not isinstance(self.eori, EORIEori): - self.eori = EORIEori(self.eori) + if self.cpuArchitecture is not None and not isinstance(self.cpuArchitecture, Architectures): + self.cpuArchitecture = Architectures(self.cpuArchitecture) - super().__post_init__(**kwargs) + if not isinstance(self.cpuFlag, list): + self.cpuFlag = [self.cpuFlag] if self.cpuFlag is not None else [] + self.cpuFlag = [v if isinstance(v, str) else str(v) for v in self.cpuFlag] + if self.smtEnabled is not None and not isinstance(self.smtEnabled, Bool): + self.smtEnabled = Bool(self.smtEnabled) -@dataclass -class EUID(RegistrationNumber): - _inherited_slots: ClassVar[List[str]] = [] + if self.numberOfCores is not None and not isinstance(self.numberOfCores, int): + self.numberOfCores = int(self.numberOfCores) - class_class_uri: ClassVar[URIRef] = GX["EUID"] - class_class_curie: ClassVar[str] = "gx:EUID" - class_name: ClassVar[str] = "EUID" - class_model_uri: ClassVar[URIRef] = GX.EUID + if self.numberOfThreads is not None and not isinstance(self.numberOfThreads, int): + self.numberOfThreads = int(self.numberOfThreads) - euid: Union[str, EUIDEuid] = None + if self.baseFrequency is not None and not isinstance(self.baseFrequency, Frequency): + self.baseFrequency = Frequency(**as_dict(self.baseFrequency)) - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.euid): - self.MissingRequiredField("euid") - if not isinstance(self.euid, EUIDEuid): - self.euid = EUIDEuid(self.euid) + if self.boostFrequency is not None and not isinstance(self.boostFrequency, Frequency): + self.boostFrequency = Frequency(**as_dict(self.boostFrequency)) + + if self.lastLevelCacheSize is not None and not isinstance(self.lastLevelCacheSize, MemorySize): + self.lastLevelCacheSize = MemorySize(**as_dict(self.lastLevelCacheSize)) + + if self.thermalDesignPower is not None and not isinstance(self.thermalDesignPower, Power): + self.thermalDesignPower = Power(**as_dict(self.thermalDesignPower)) super().__post_init__(**kwargs) -@dataclass -class Memory(Device): +@dataclass(repr=False) +class Disk(Device): """ - Details with respect to properties and capabilities of RAM. + Capabilities of a physical or virtual hard drive. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Memory"] - class_class_curie: ClassVar[str] = "gx:Memory" - class_name: ClassVar[str] = "Memory" - class_model_uri: ClassVar[URIRef] = GX.Memory + class_class_uri: ClassVar[URIRef] = GX["Disk"] + class_class_curie: ClassVar[str] = "gx:Disk" + class_name: ClassVar[str] = "Disk" + class_model_uri: ClassVar[URIRef] = GX.Disk - memorySize: Union[dict, "MemorySize"] = None - memoryClass: Optional[Union[str, "MemoryClasses"]] = "other" - memoryRank: Optional[Union[str, "MemoryRanks"]] = "other" - eccEnabled: Optional[Union[bool, Bool]] = False - hardwareEncryption: Optional[Union[bool, Bool]] = False + diskSize: Union[dict, "MemorySize"] = None + diskType: Optional[Union[str, "DiskType"]] = "other" + diskBusType: Optional[Union[str, "DiskBusType"]] = "other" def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.memorySize): - self.MissingRequiredField("memorySize") - if not isinstance(self.memorySize, MemorySize): - self.memorySize = MemorySize(**as_dict(self.memorySize)) - - if self.memoryClass is not None and not isinstance(self.memoryClass, MemoryClasses): - self.memoryClass = MemoryClasses(self.memoryClass) - - if self.memoryRank is not None and not isinstance(self.memoryRank, MemoryRanks): - self.memoryRank = MemoryRanks(self.memoryRank) + if self._is_empty(self.diskSize): + self.MissingRequiredField("diskSize") + if not isinstance(self.diskSize, MemorySize): + self.diskSize = MemorySize(**as_dict(self.diskSize)) - if self.eccEnabled is not None and not isinstance(self.eccEnabled, Bool): - self.eccEnabled = Bool(self.eccEnabled) + if self.diskType is not None and not isinstance(self.diskType, DiskType): + self.diskType = DiskType(self.diskType) - if self.hardwareEncryption is not None and not isinstance(self.hardwareEncryption, Bool): - self.hardwareEncryption = Bool(self.hardwareEncryption) + if self.diskBusType is not None and not isinstance(self.diskBusType, DiskBusType): + self.diskBusType = DiskBusType(self.diskBusType) super().__post_init__(**kwargs) -@dataclass -class Quantity(YAMLRoot): +@dataclass(repr=False) +class Endpoint(YAMLRoot): """ - Abstract parent class for all physical quantities, such as frequency, power or length. + An endpoint is a mean to access and interact with a service or a resource. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = QUDT["Quantity"] - class_class_curie: ClassVar[str] = "qudt:Quantity" - class_name: ClassVar[str] = "Quantity" - class_model_uri: ClassVar[URIRef] = GX.Quantity + class_class_uri: ClassVar[URIRef] = GX["Endpoint"] + class_class_curie: ClassVar[str] = "gx:Endpoint" + class_name: ClassVar[str] = "Endpoint" + class_model_uri: ClassVar[URIRef] = GX.Endpoint - value: float = None - unit: str = None + standardConformity: Union[Union[dict, "StandardConformity"], List[Union[dict, "StandardConformity"]]] = None + endpointURL: Optional[Union[str, URI]] = None + formalDescription: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.value): - self.MissingRequiredField("value") - if not isinstance(self.value, float): - self.value = float(self.value) + if self._is_empty(self.standardConformity): + self.MissingRequiredField("standardConformity") + self._normalize_inlined_as_dict(slot_name="standardConformity", slot_type=StandardConformity, key_name="title", keyed=False) - if self._is_empty(self.unit): - self.MissingRequiredField("unit") - if not isinstance(self.unit, str): - self.unit = str(self.unit) + if self.endpointURL is not None and not isinstance(self.endpointURL, URI): + self.endpointURL = URI(self.endpointURL) + + if self.formalDescription is not None and not isinstance(self.formalDescription, str): + self.formalDescription = str(self.formalDescription) super().__post_init__(**kwargs) -@dataclass -class Frequency(Quantity): +@dataclass(repr=False) +class EnergyMix(YAMLRoot): """ - Definition of 'Frequency', according to http://qudt.org/quantitykind/FrequencyDefinition. + Details the composition of energy sources in a given mix. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/FrequencyDefinition"] - class_class_curie: ClassVar[str] = "qudt:quantitykind/FrequencyDefinition" - class_name: ClassVar[str] = "Frequency" - class_model_uri: ClassVar[URIRef] = GX.Frequency - - value: float = None - unit: str = None + class_class_uri: ClassVar[URIRef] = GX["EnergyMix"] + class_class_curie: ClassVar[str] = "gx:EnergyMix" + class_name: ClassVar[str] = "EnergyMix" + class_model_uri: ClassVar[URIRef] = GX.EnergyMix -@dataclass -class MemorySize(Quantity): - """ - The number of bytes, that can be stored on a digital storage. - """ - _inherited_slots: ClassVar[List[str]] = [] + date: Union[str, XSDDate] = None + renewableEnergy: float = None + hourlyCarbonFreeEnergy: float = None - class_class_uri: ClassVar[URIRef] = GX["MemorySize"] - class_class_curie: ClassVar[str] = "gx:MemorySize" - class_name: ClassVar[str] = "MemorySize" - class_model_uri: ClassVar[URIRef] = GX.MemorySize + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.date): + self.MissingRequiredField("date") + if not isinstance(self.date, XSDDate): + self.date = XSDDate(self.date) - value: float = None - unit: str = None + if self._is_empty(self.renewableEnergy): + self.MissingRequiredField("renewableEnergy") + if not isinstance(self.renewableEnergy, float): + self.renewableEnergy = float(self.renewableEnergy) -@dataclass -class Power(Quantity): - """ - Definition of 'Power', according to http://qudt.org/quantitykind/Power. - """ - _inherited_slots: ClassVar[List[str]] = [] + if self._is_empty(self.hourlyCarbonFreeEnergy): + self.MissingRequiredField("hourlyCarbonFreeEnergy") + if not isinstance(self.hourlyCarbonFreeEnergy, float): + self.hourlyCarbonFreeEnergy = float(self.hourlyCarbonFreeEnergy) - class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/Power"] - class_class_curie: ClassVar[str] = "qudt:quantitykind/Power" - class_name: ClassVar[str] = "Power" - class_model_uri: ClassVar[URIRef] = GX.Power + super().__post_init__(**kwargs) - value: float = None - unit: str = None -@dataclass -class DataRate(Quantity): +@dataclass(repr=False) +class EnergyUsageEfficiency(YAMLRoot): """ - Definition of 'Data Rate', according to http://qudt.org/quantitykind/DataRate. + Represents the efficiency of energy usage in a resource. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/DataRate"] - class_class_curie: ClassVar[str] = "qudt:quantitykind/DataRate" - class_name: ClassVar[str] = "DataRate" - class_model_uri: ClassVar[URIRef] = GX.DataRate + class_class_uri: ClassVar[URIRef] = GX["EnergyUsageEfficiency"] + class_class_curie: ClassVar[str] = "gx:EnergyUsageEfficiency" + class_name: ClassVar[str] = "EnergyUsageEfficiency" + class_model_uri: ClassVar[URIRef] = GX.EnergyUsageEfficiency - value: float = None - unit: str = None + powerUsageEffectiveness: float = None + certifications: Optional[Union[Union[dict, "LegalDocument"], List[Union[dict, "LegalDocument"]]]] = empty_list() -@dataclass -class Time(Quantity): - """ - Definition of 'Time', according to http://qudt.org/quantitykind/Time. - """ - _inherited_slots: ClassVar[List[str]] = [] + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.powerUsageEffectiveness): + self.MissingRequiredField("powerUsageEffectiveness") + if not isinstance(self.powerUsageEffectiveness, float): + self.powerUsageEffectiveness = float(self.powerUsageEffectiveness) - class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/Time"] - class_class_curie: ClassVar[str] = "qudt:quantitykind/Time" - class_name: ClassVar[str] = "Time" - class_model_uri: ClassVar[URIRef] = GX.Time + self._normalize_inlined_as_dict(slot_name="certifications", slot_type=LegalDocument, key_name="url", keyed=False) - value: float = None - unit: str = None + super().__post_init__(**kwargs) -@dataclass -class RetentionDuration(Time): + +@dataclass(repr=False) +class GaiaXEntity(YAMLRoot): """ - Sub-class of Time with units relevant for retention durations. + Root class for Gaia-X entities. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["RetentionDuration"] - class_class_curie: ClassVar[str] = "gx:RetentionDuration" - class_name: ClassVar[str] = "RetentionDuration" - class_model_uri: ClassVar[URIRef] = GX.RetentionDuration + class_class_uri: ClassVar[URIRef] = GX["GaiaXEntity"] + class_class_curie: ClassVar[str] = "gx:GaiaXEntity" + class_name: ClassVar[str] = "GaiaXEntity" + class_model_uri: ClassVar[URIRef] = GX.GaiaXEntity - value: float = None - unit: str = None + name: Optional[str] = None + description: Optional[str] = None -@dataclass -class FloatPercentage(YAMLRoot): - """ - Definition of percentage, according to https://qudt.org/2.1/schema/qudt - """ + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.name is not None and not isinstance(self.name, str): + self.name = str(self.name) + + if self.description is not None and not isinstance(self.description, str): + self.description = str(self.description) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class SignatureCheckType(GaiaXEntity): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = QUDT_SCHEMA["floatPercentage"] - class_class_curie: ClassVar[str] = "qudt_schema:floatPercentage" - class_name: ClassVar[str] = "FloatPercentage" - class_model_uri: ClassVar[URIRef] = GX.FloatPercentage + class_class_uri: ClassVar[URIRef] = GX["SignatureCheckType"] + class_class_curie: ClassVar[str] = "gx:SignatureCheckType" + class_name: ClassVar[str] = "SignatureCheckType" + class_model_uri: ClassVar[URIRef] = GX.SignatureCheckType - value: Optional[float] = None + participantRole: str = None + mandatory: str = None + legalValidity: Union[bool, Bool] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.value is not None and not isinstance(self.value, float): - self.value = float(self.value) + if self._is_empty(self.participantRole): + self.MissingRequiredField("participantRole") + if not isinstance(self.participantRole, str): + self.participantRole = str(self.participantRole) + + if self._is_empty(self.mandatory): + self.MissingRequiredField("mandatory") + if not isinstance(self.mandatory, str): + self.mandatory = str(self.mandatory) + + if self._is_empty(self.legalValidity): + self.MissingRequiredField("legalValidity") + if not isinstance(self.legalValidity, Bool): + self.legalValidity = Bool(self.legalValidity) super().__post_init__(**kwargs) -class Participant(GaiaXEntity): - """ - An legal or natural person that is onboarded to Gaia-X and offers, consumes services or operates resources. - """ +@dataclass(repr=False) +class DataUsage(GaiaXEntity): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Participant"] - class_class_curie: ClassVar[str] = "gx:Participant" - class_name: ClassVar[str] = "Participant" - class_model_uri: ClassVar[URIRef] = GX.Participant + class_class_uri: ClassVar[URIRef] = GX["DataUsage"] + class_class_curie: ClassVar[str] = "gx:DataUsage" + class_name: ClassVar[str] = "DataUsage" + class_model_uri: ClassVar[URIRef] = GX.DataUsage + loggingService: Optional[str] = None -@dataclass -class LegalPerson(Participant): - """ - A legal person, who is uniquely identified by its registration number. - """ + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.loggingService is not None and not isinstance(self.loggingService, str): + self.loggingService = str(self.loggingService) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class DataProductUsageContract(GaiaXEntity): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["LegalPerson"] - class_class_curie: ClassVar[str] = "gx:LegalPerson" - class_name: ClassVar[str] = "LegalPerson" - class_model_uri: ClassVar[URIRef] = GX.LegalPerson + class_class_uri: ClassVar[URIRef] = GX["DataProductUsageContract"] + class_class_curie: ClassVar[str] = "gx:DataProductUsageContract" + class_name: ClassVar[str] = "DataProductUsageContract" + class_model_uri: ClassVar[URIRef] = GX.DataProductUsageContract - registrationNumber: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None - legalAddress: Union[dict, Address] = None - headquartersAddress: Union[dict, Address] = None - parentOrganizationOf: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() - subOrganisationOf: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() + providedBy: Union[str, DataProviderRegistrationNumber] = None + consumedBy: Union[str, DataConsumerRegistrationNumber] = None + dataProduct: Union[dict, "DataProduct"] = None + signers: Union[Union[dict, SignatureCheckType], List[Union[dict, SignatureCheckType]]] = None + termOfUsage: str = None + dataUsage: Union[dict, DataUsage] = None + notarizedIn: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.registrationNumber): - self.MissingRequiredField("registrationNumber") - if not isinstance(self.registrationNumber, list): - self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] - self.registrationNumber = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.registrationNumber] + if self._is_empty(self.providedBy): + self.MissingRequiredField("providedBy") + if not isinstance(self.providedBy, DataProviderRegistrationNumber): + self.providedBy = DataProviderRegistrationNumber(self.providedBy) - if self._is_empty(self.legalAddress): - self.MissingRequiredField("legalAddress") - if not isinstance(self.legalAddress, Address): - self.legalAddress = Address(**as_dict(self.legalAddress)) + if self._is_empty(self.consumedBy): + self.MissingRequiredField("consumedBy") + if not isinstance(self.consumedBy, DataConsumerRegistrationNumber): + self.consumedBy = DataConsumerRegistrationNumber(self.consumedBy) - if self._is_empty(self.headquartersAddress): - self.MissingRequiredField("headquartersAddress") - if not isinstance(self.headquartersAddress, Address): - self.headquartersAddress = Address(**as_dict(self.headquartersAddress)) + if self._is_empty(self.dataProduct): + self.MissingRequiredField("dataProduct") + if not isinstance(self.dataProduct, DataProduct): + self.dataProduct = DataProduct(**as_dict(self.dataProduct)) - if not isinstance(self.parentOrganizationOf, list): - self.parentOrganizationOf = [self.parentOrganizationOf] if self.parentOrganizationOf is not None else [] - self.parentOrganizationOf = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.parentOrganizationOf] + if self._is_empty(self.signers): + self.MissingRequiredField("signers") + self._normalize_inlined_as_dict(slot_name="signers", slot_type=SignatureCheckType, key_name="participantRole", keyed=False) - if not isinstance(self.subOrganisationOf, list): - self.subOrganisationOf = [self.subOrganisationOf] if self.subOrganisationOf is not None else [] - self.subOrganisationOf = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.subOrganisationOf] + if self._is_empty(self.termOfUsage): + self.MissingRequiredField("termOfUsage") + if not isinstance(self.termOfUsage, str): + self.termOfUsage = str(self.termOfUsage) + + if self._is_empty(self.dataUsage): + self.MissingRequiredField("dataUsage") + if not isinstance(self.dataUsage, DataUsage): + self.dataUsage = DataUsage(**as_dict(self.dataUsage)) + + if self.notarizedIn is not None and not isinstance(self.notarizedIn, str): + self.notarizedIn = str(self.notarizedIn) super().__post_init__(**kwargs) -@dataclass -class Resource(GaiaXEntity): - """ - Description of a good or object of the Gaia-X Ecosystem, and may be aggregated in a Service Offering or exist - independently of it. - """ +@dataclass(repr=False) +class DataSet(GaiaXEntity): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Resource"] - class_class_curie: ClassVar[str] = "gx:Resource" - class_name: ClassVar[str] = "Resource" - class_model_uri: ClassVar[URIRef] = GX.Resource + class_class_uri: ClassVar[URIRef] = GX["DataSet"] + class_class_curie: ClassVar[str] = "gx:DataSet" + class_name: ClassVar[str] = "DataSet" + class_model_uri: ClassVar[URIRef] = GX.DataSet - aggregationOfResources: Optional[Union[str, List[str]]] = empty_list() + title: str = None + distributions: Union[Union[dict, "Distribution"], List[Union[dict, "Distribution"]]] = None + identifier: str = None + exposedThrough: str = None + issued: Optional[Union[str, XSDDate]] = None + expirationDateTime: Optional[Union[str, XSDDateTime]] = None + licenses: Optional[Union[str, List[str]]] = empty_list() + dataLicensors: Optional[Union[Union[str, DataLicensorRegistrationNumber], List[Union[str, DataLicensorRegistrationNumber]]]] = empty_list() + dataUsageAgreements: Optional[Union[Union[dict, DataUsageAgreement], List[Union[dict, DataUsageAgreement]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if not isinstance(self.aggregationOfResources, list): - self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] - self.aggregationOfResources = [v if isinstance(v, str) else str(v) for v in self.aggregationOfResources] + if self._is_empty(self.title): + self.MissingRequiredField("title") + if not isinstance(self.title, str): + self.title = str(self.title) + + if self._is_empty(self.distributions): + self.MissingRequiredField("distributions") + self._normalize_inlined_as_dict(slot_name="distributions", slot_type=Distribution, key_name="title", keyed=False) + + if self._is_empty(self.identifier): + self.MissingRequiredField("identifier") + if not isinstance(self.identifier, str): + self.identifier = str(self.identifier) + + if self._is_empty(self.exposedThrough): + self.MissingRequiredField("exposedThrough") + if not isinstance(self.exposedThrough, str): + self.exposedThrough = str(self.exposedThrough) + + if self.issued is not None and not isinstance(self.issued, XSDDate): + self.issued = XSDDate(self.issued) + + if self.expirationDateTime is not None and not isinstance(self.expirationDateTime, XSDDateTime): + self.expirationDateTime = XSDDateTime(self.expirationDateTime) + + if not isinstance(self.licenses, list): + self.licenses = [self.licenses] if self.licenses is not None else [] + self.licenses = [v if isinstance(v, str) else str(v) for v in self.licenses] + + if not isinstance(self.dataLicensors, list): + self.dataLicensors = [self.dataLicensors] if self.dataLicensors is not None else [] + self.dataLicensors = [v if isinstance(v, DataLicensorRegistrationNumber) else DataLicensorRegistrationNumber(v) for v in self.dataLicensors] + + self._normalize_inlined_as_dict(slot_name="dataUsageAgreements", slot_type=DataUsageAgreement, key_name="producedBy", keyed=False) super().__post_init__(**kwargs) -@dataclass -class VirtualResource(Resource): - """ - It represents static data in any form and necessary information such as dataset, configuration file, license, - keypair, an AI model, neural network weights, etc. - """ +@dataclass(repr=False) +class Distribution(GaiaXEntity): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["VirtualResource"] - class_class_curie: ClassVar[str] = "gx:VirtualResource" - class_name: ClassVar[str] = "VirtualResource" - class_model_uri: ClassVar[URIRef] = GX.VirtualResource + class_class_uri: ClassVar[URIRef] = DCAT["Distribution"] + class_class_curie: ClassVar[str] = "dcat:Distribution" + class_name: ClassVar[str] = "Distribution" + class_model_uri: ClassVar[URIRef] = GX.Distribution - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None + title: str = None + format: str = None + compressFormat: Optional[str] = None + packageFormat: Optional[str] = None + byteSize: Optional[str] = None + locations: Optional[Union[str, List[str]]] = empty_list() + hash: Optional[str] = None + hashAlgorithm: Optional[str] = None + issued: Optional[Union[str, XSDDate]] = None + expirationDateTime: Optional[Union[str, XSDDateTime]] = None + language: Optional[str] = None + licenses: Optional[Union[str, List[str]]] = empty_list() + dataLicensors: Optional[Union[Union[str, DataLicensorRegistrationNumber], List[Union[str, DataLicensorRegistrationNumber]]]] = empty_list() + dataUsageAgreements: Optional[Union[Union[dict, DataUsageAgreement], List[Union[dict, DataUsageAgreement]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.copyrightOwnedBy): - self.MissingRequiredField("copyrightOwnedBy") - if not isinstance(self.copyrightOwnedBy, list): - self.copyrightOwnedBy = [self.copyrightOwnedBy] if self.copyrightOwnedBy is not None else [] - self.copyrightOwnedBy = [v if isinstance(v, str) else str(v) for v in self.copyrightOwnedBy] + if self._is_empty(self.title): + self.MissingRequiredField("title") + if not isinstance(self.title, str): + self.title = str(self.title) - if self._is_empty(self.license): - self.MissingRequiredField("license") - if not isinstance(self.license, list): - self.license = [self.license] if self.license is not None else [] - self.license = [v if isinstance(v, str) else str(v) for v in self.license] + if self._is_empty(self.format): + self.MissingRequiredField("format") + if not isinstance(self.format, str): + self.format = str(self.format) - if self._is_empty(self.resourcePolicy): - self.MissingRequiredField("resourcePolicy") - if not isinstance(self.resourcePolicy, list): - self.resourcePolicy = [self.resourcePolicy] if self.resourcePolicy is not None else [] - self.resourcePolicy = [v if isinstance(v, str) else str(v) for v in self.resourcePolicy] + if self.compressFormat is not None and not isinstance(self.compressFormat, str): + self.compressFormat = str(self.compressFormat) + + if self.packageFormat is not None and not isinstance(self.packageFormat, str): + self.packageFormat = str(self.packageFormat) + + if self.byteSize is not None and not isinstance(self.byteSize, str): + self.byteSize = str(self.byteSize) + + if not isinstance(self.locations, list): + self.locations = [self.locations] if self.locations is not None else [] + self.locations = [v if isinstance(v, str) else str(v) for v in self.locations] + + if self.hash is not None and not isinstance(self.hash, str): + self.hash = str(self.hash) + + if self.hashAlgorithm is not None and not isinstance(self.hashAlgorithm, str): + self.hashAlgorithm = str(self.hashAlgorithm) + + if self.issued is not None and not isinstance(self.issued, XSDDate): + self.issued = XSDDate(self.issued) + + if self.expirationDateTime is not None and not isinstance(self.expirationDateTime, XSDDateTime): + self.expirationDateTime = XSDDateTime(self.expirationDateTime) + + if self.language is not None and not isinstance(self.language, str): + self.language = str(self.language) + + if not isinstance(self.licenses, list): + self.licenses = [self.licenses] if self.licenses is not None else [] + self.licenses = [v if isinstance(v, str) else str(v) for v in self.licenses] + + if not isinstance(self.dataLicensors, list): + self.dataLicensors = [self.dataLicensors] if self.dataLicensors is not None else [] + self.dataLicensors = [v if isinstance(v, DataLicensorRegistrationNumber) else DataLicensorRegistrationNumber(v) for v in self.dataLicensors] + + self._normalize_inlined_as_dict(slot_name="dataUsageAgreements", slot_type=DataUsageAgreement, key_name="producedBy", keyed=False) super().__post_init__(**kwargs) -@dataclass -class PhysicalResource(Resource): +@dataclass(repr=False) +class GPU(Device): """ - A Physical resource is, but not limited to, a datacenter, a bare-metal service, a warehouse, a plant. Those are - entities that have a weight and position in physical space. + Graphical processing unit of virtual and physical machines. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["PhysicalResource"] - class_class_curie: ClassVar[str] = "gx:PhysicalResource" - class_name: ClassVar[str] = "PhysicalResource" - class_model_uri: ClassVar[URIRef] = GX.PhysicalResource + class_class_uri: ClassVar[URIRef] = GX["GPU"] + class_class_curie: ClassVar[str] = "gx:GPU" + class_name: ClassVar[str] = "GPU" + class_model_uri: ClassVar[URIRef] = GX.GPU - maintainedBy: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None - location: Union[Union[dict, Address], List[Union[dict, Address]]] = None - ownedBy: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() - manufacturedBy: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() + gpuMemory: Optional[Union[dict, "MemorySize"]] = None + gpuInterconnection: Optional[Union[str, "GPUInterconnetionTypes"]] = None + gpuProcessingUnits: Optional[int] = None + gpuPassthrough: Optional[Union[bool, Bool]] = False def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.maintainedBy): - self.MissingRequiredField("maintainedBy") - if not isinstance(self.maintainedBy, list): - self.maintainedBy = [self.maintainedBy] if self.maintainedBy is not None else [] - self.maintainedBy = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.maintainedBy] + if self.gpuMemory is not None and not isinstance(self.gpuMemory, MemorySize): + self.gpuMemory = MemorySize(**as_dict(self.gpuMemory)) - if self._is_empty(self.location): - self.MissingRequiredField("location") - #self._normalize_inlined_as_dict(slot_name="location", slot_type=Address, key_name="countryCode", keyed=False) + if self.gpuInterconnection is not None and not isinstance(self.gpuInterconnection, GPUInterconnetionTypes): + self.gpuInterconnection = GPUInterconnetionTypes(self.gpuInterconnection) - if not isinstance(self.ownedBy, list): - self.ownedBy = [self.ownedBy] if self.ownedBy is not None else [] - self.ownedBy = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.ownedBy] + if self.gpuProcessingUnits is not None and not isinstance(self.gpuProcessingUnits, int): + self.gpuProcessingUnits = int(self.gpuProcessingUnits) - if not isinstance(self.manufacturedBy, list): - self.manufacturedBy = [self.manufacturedBy] if self.manufacturedBy is not None else [] - self.manufacturedBy = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.manufacturedBy] + if self.gpuPassthrough is not None and not isinstance(self.gpuPassthrough, Bool): + self.gpuPassthrough = Bool(self.gpuPassthrough) super().__post_init__(**kwargs) -@dataclass -class SoftwareResource(VirtualResource): +@dataclass(repr=False) +class MaintenanceSubscription(YAMLRoot): """ - A Gaia-X Virtual Resource describing an executable program. + A maintenance subscriptions gives access to bug fixes, security fixes and function updates from software vendor. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["SoftwareResource"] - class_class_curie: ClassVar[str] = "gx:SoftwareResource" - class_name: ClassVar[str] = "SoftwareResource" - class_model_uri: ClassVar[URIRef] = GX.SoftwareResource + class_class_uri: ClassVar[URIRef] = GX["MaintenanceSubscription"] + class_class_curie: ClassVar[str] = "gx:MaintenanceSubscription" + class_name: ClassVar[str] = "MaintenanceSubscription" + class_model_uri: ClassVar[URIRef] = GX.MaintenanceSubscription - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - checksum: Optional[Union[dict, CheckSum]] = None - signature: Optional[Union[dict, Signature]] = None - version: Optional[str] = None - patchLevel: Optional[str] = None - buildDate: Optional[Union[str, XSDDateTime]] = None + subscriptionIncluded: Optional[Union[bool, Bool]] = False + subscriptionRequired: Optional[Union[bool, Bool]] = False + maintainedUntil: Optional[Union[str, XSDDate]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.checksum is not None and not isinstance(self.checksum, CheckSum): - self.checksum = CheckSum(**as_dict(self.checksum)) - - if self.signature is not None and not isinstance(self.signature, Signature): - self.signature = Signature(**as_dict(self.signature)) - - if self.version is not None and not isinstance(self.version, str): - self.version = str(self.version) + if self.subscriptionIncluded is not None and not isinstance(self.subscriptionIncluded, Bool): + self.subscriptionIncluded = Bool(self.subscriptionIncluded) - if self.patchLevel is not None and not isinstance(self.patchLevel, str): - self.patchLevel = str(self.patchLevel) + if self.subscriptionRequired is not None and not isinstance(self.subscriptionRequired, Bool): + self.subscriptionRequired = Bool(self.subscriptionRequired) - if self.buildDate is not None and not isinstance(self.buildDate, XSDDateTime): - self.buildDate = XSDDateTime(self.buildDate) + if self.maintainedUntil is not None and not isinstance(self.maintainedUntil, XSDDate): + self.maintainedUntil = XSDDate(self.maintainedUntil) super().__post_init__(**kwargs) -@dataclass -class CodeArtifact(SoftwareResource): +@dataclass(repr=False) +class UpdateStrategy(YAMLRoot): """ - A piece of software that can be executed by a Compute service. It is a subclass of SoftwareResource. + Cloud service customer expect cloud images to be updated regularly, in order to always get the image with the + lasted patches. Technically, an updated image is a new image in cloud service' image catalogue having it's own + unique image ID and replaces its old version. It is recommended to hide outdated version, but keep them + referencable by its ID for a transition period for customers' convenience. This class defines important aspects of + providers image update policy. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["CodeArtifact"] - class_class_curie: ClassVar[str] = "gx:CodeArtifact" - class_name: ClassVar[str] = "CodeArtifact" - class_model_uri: ClassVar[URIRef] = GX.CodeArtifact + class_class_uri: ClassVar[URIRef] = GX["UpdateStrategy"] + class_class_curie: ClassVar[str] = "gx:UpdateStrategy" + class_name: ClassVar[str] = "UpdateStrategy" + class_model_uri: ClassVar[URIRef] = GX.UpdateStrategy - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None + replaceFrequency: Optional[Union[str, "UpdateFrequency"]] = None + hotfixHours: Optional[int] = None + oldVersionsValidUntil: Optional[str] = None + providedUntil: Optional[str] = None -@dataclass -class Image(CodeArtifact): + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.replaceFrequency is not None and not isinstance(self.replaceFrequency, UpdateFrequency): + self.replaceFrequency = UpdateFrequency(self.replaceFrequency) + + if self.hotfixHours is not None and not isinstance(self.hotfixHours, int): + self.hotfixHours = int(self.hotfixHours) + + if self.oldVersionsValidUntil is not None and not isinstance(self.oldVersionsValidUntil, str): + self.oldVersionsValidUntil = str(self.oldVersionsValidUntil) + + if self.providedUntil is not None and not isinstance(self.providedUntil, str): + self.providedUntil = str(self.providedUntil) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class LatestN(YAMLRoot): """ - A software piece that can be executed by a virtual or bare metal Compute services. It is a subclass of - OperatingSystem and CodeArtifact. + Number of latest N outdated image versions, which will be valid. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Image"] - class_class_curie: ClassVar[str] = "gx:Image" - class_name: ClassVar[str] = "Image" - class_model_uri: ClassVar[URIRef] = GX.Image + class_class_uri: ClassVar[URIRef] = GX["LatestN"] + class_class_curie: ClassVar[str] = "gx:LatestN" + class_name: ClassVar[str] = "Latest_N" + class_model_uri: ClassVar[URIRef] = GX.LatestN - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - fileSize: Optional[Union[dict, MemorySize]] = None - operatingSystem: Optional[Union[dict, "OperatingSystem"]] = None - cpuReq: Optional[Union[dict, CPU]] = None - gpuReq: Optional[Union[dict, GPU]] = None - ramReq: Optional[Union[dict, Memory]] = None - videoRamSize: Optional[Union[dict, MemorySize]] = None - rootDiskReq: Optional[Union[dict, Disk]] = None - encryption: Optional[Union[dict, Encryption]] = None - checkSum: Optional[Union[dict, CheckSum]] = None - secureBoot: Optional[Union[bool, Bool]] = False - vPMU: Optional[Union[bool, Bool]] = False - multiQueues: Optional[Union[bool, Bool]] = False - updateStrategy: Optional[Union[dict, UpdateStrategy]] = None - licenseIncluded: Optional[Union[bool, Bool]] = False - maintenance: Optional[Union[dict, MaintenanceSubscription]] = None + value: Optional[int] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.fileSize is not None and not isinstance(self.fileSize, MemorySize): - self.fileSize = MemorySize(**as_dict(self.fileSize)) + if self.value is not None and not isinstance(self.value, int): + self.value = int(self.value) - if self.operatingSystem is not None and not isinstance(self.operatingSystem, OperatingSystem): - self.operatingSystem = OperatingSystem(**as_dict(self.operatingSystem)) + super().__post_init__(**kwargs) - if self.cpuReq is not None and not isinstance(self.cpuReq, CPU): - self.cpuReq = CPU(**as_dict(self.cpuReq)) - if self.gpuReq is not None and not isinstance(self.gpuReq, GPU): - self.gpuReq = GPU(**as_dict(self.gpuReq)) +class InstantiationRequirement(GaiaXEntity): + """ + A container class to gather all requirements for compute service offering instantiations. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.ramReq is not None and not isinstance(self.ramReq, Memory): - self.ramReq = Memory(**as_dict(self.ramReq)) + class_class_uri: ClassVar[URIRef] = GX["InstantiationRequirement"] + class_class_curie: ClassVar[str] = "gx:InstantiationRequirement" + class_name: ClassVar[str] = "InstantiationRequirement" + class_model_uri: ClassVar[URIRef] = GX.InstantiationRequirement - if self.videoRamSize is not None and not isinstance(self.videoRamSize, MemorySize): - self.videoRamSize = MemorySize(**as_dict(self.videoRamSize)) - if self.rootDiskReq is not None and not isinstance(self.rootDiskReq, Disk): - self.rootDiskReq = Disk(**as_dict(self.rootDiskReq)) +@dataclass(repr=False) +class ComputeFunctionConfiguration(InstantiationRequirement): + """ + InstantiationRequirements for compute functions. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.encryption is not None and not isinstance(self.encryption, Encryption): - self.encryption = Encryption(**as_dict(self.encryption)) + class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionConfiguration"] + class_class_curie: ClassVar[str] = "gx:ComputeFunctionConfiguration" + class_name: ClassVar[str] = "ComputeFunctionConfiguration" + class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionConfiguration - if self.checkSum is not None and not isinstance(self.checkSum, CheckSum): - self.checkSum = CheckSum(**as_dict(self.checkSum)) + computeFunctionRuntime: Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]] = None + computeFunctionQuotas: Optional[Union[Union[dict, ComputeFunctionQuotas], List[Union[dict, ComputeFunctionQuotas]]]] = empty_list() + computeFunctionLibrary: Optional[Union[Union[dict, "ComputeFunctionTemplate"], List[Union[dict, "ComputeFunctionTemplate"]]]] = empty_list() + computeFunctionSDK: Optional[Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]]] = empty_list() + computeFunctionTrigger: Optional[Union[Union[dict, ComputeFunctionTrigger], List[Union[dict, ComputeFunctionTrigger]]]] = empty_list() + computeFunctionDeploymentMethod: Optional[Union[Union[str, "ComputeFunctionDeploymentMethod"], List[Union[str, "ComputeFunctionDeploymentMethod"]]]] = empty_list() + confidentialComputingTechnology: Optional[Union[dict, "ConfidentialComputing"]] = None - if self.secureBoot is not None and not isinstance(self.secureBoot, Bool): - self.secureBoot = Bool(self.secureBoot) + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.computeFunctionRuntime): + self.MissingRequiredField("computeFunctionRuntime") + self._normalize_inlined_as_dict(slot_name="computeFunctionRuntime", slot_type=ComputeFunctionRuntime, key_name="supportedLanguage", keyed=False) - if self.vPMU is not None and not isinstance(self.vPMU, Bool): - self.vPMU = Bool(self.vPMU) + if not isinstance(self.computeFunctionQuotas, list): + self.computeFunctionQuotas = [self.computeFunctionQuotas] if self.computeFunctionQuotas is not None else [] + self.computeFunctionQuotas = [v if isinstance(v, ComputeFunctionQuotas) else ComputeFunctionQuotas(**as_dict(v)) for v in self.computeFunctionQuotas] - if self.multiQueues is not None and not isinstance(self.multiQueues, Bool): - self.multiQueues = Bool(self.multiQueues) + self._normalize_inlined_as_dict(slot_name="computeFunctionLibrary", slot_type=ComputeFunctionTemplate, key_name="copyrightOwnedBy", keyed=False) - if self.updateStrategy is not None and not isinstance(self.updateStrategy, UpdateStrategy): - self.updateStrategy = UpdateStrategy(**as_dict(self.updateStrategy)) + self._normalize_inlined_as_dict(slot_name="computeFunctionSDK", slot_type=ComputeFunctionRuntime, key_name="supportedLanguage", keyed=False) - if self.licenseIncluded is not None and not isinstance(self.licenseIncluded, Bool): - self.licenseIncluded = Bool(self.licenseIncluded) + if not isinstance(self.computeFunctionTrigger, list): + self.computeFunctionTrigger = [self.computeFunctionTrigger] if self.computeFunctionTrigger is not None else [] + self.computeFunctionTrigger = [v if isinstance(v, ComputeFunctionTrigger) else ComputeFunctionTrigger(**as_dict(v)) for v in self.computeFunctionTrigger] - if self.maintenance is not None and not isinstance(self.maintenance, MaintenanceSubscription): - self.maintenance = MaintenanceSubscription(**as_dict(self.maintenance)) + if not isinstance(self.computeFunctionDeploymentMethod, list): + self.computeFunctionDeploymentMethod = [self.computeFunctionDeploymentMethod] if self.computeFunctionDeploymentMethod is not None else [] + self.computeFunctionDeploymentMethod = [v if isinstance(v, ComputeFunctionDeploymentMethod) else ComputeFunctionDeploymentMethod(v) for v in self.computeFunctionDeploymentMethod] + + if self.confidentialComputingTechnology is not None and not isinstance(self.confidentialComputingTechnology, ConfidentialComputing): + self.confidentialComputingTechnology = ConfidentialComputing(**as_dict(self.confidentialComputingTechnology)) super().__post_init__(**kwargs) -@dataclass -class PXEImage(Image): +@dataclass(repr=False) +class ConnectivityConfiguration(InstantiationRequirement): """ - PXE image for physical machines. + The connectivityConfiguration class encapsulates the configurable attributes of a ConnectivityServiceOffering. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["PXEImage"] - class_class_curie: ClassVar[str] = "gx:PXEImage" - class_name: ClassVar[str] = "PXE_Image" - class_model_uri: ClassVar[URIRef] = GX.PXEImage + class_class_uri: ClassVar[URIRef] = GX["ConnectivityConfiguration"] + class_class_curie: ClassVar[str] = "gx:ConnectivityConfiguration" + class_name: ClassVar[str] = "ConnectivityConfiguration" + class_model_uri: ClassVar[URIRef] = GX.ConnectivityConfiguration - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - pxeImageDiskFormat: Optional[Union[str, "PXEDiskType"]] = "ISO" + sourceIdentifierA: Optional[str] = None + destinationIdentifierZ: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.pxeImageDiskFormat is not None and not isinstance(self.pxeImageDiskFormat, PXEDiskType): - self.pxeImageDiskFormat = PXEDiskType(self.pxeImageDiskFormat) + if self.sourceIdentifierA is not None and not isinstance(self.sourceIdentifierA, str): + self.sourceIdentifierA = str(self.sourceIdentifierA) + + if self.destinationIdentifierZ is not None and not isinstance(self.destinationIdentifierZ, str): + self.destinationIdentifierZ = str(self.destinationIdentifierZ) super().__post_init__(**kwargs) -@dataclass -class OperatingSystem(SoftwareResource): +@dataclass(repr=False) +class ContainerResourceLimits(InstantiationRequirement): """ - A special Gaia-X Software Resource describing an operating system. + InstantiationRequirements for containers (available resources and associated limits). """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["OperatingSystem"] - class_class_curie: ClassVar[str] = "gx:OperatingSystem" - class_name: ClassVar[str] = "OperatingSystem" - class_model_uri: ClassVar[URIRef] = GX.OperatingSystem + class_class_uri: ClassVar[URIRef] = GX["ContainerResourceLimits"] + class_class_curie: ClassVar[str] = "gx:ContainerResourceLimits" + class_name: ClassVar[str] = "ContainerResourceLimits" + class_model_uri: ClassVar[URIRef] = GX.ContainerResourceLimits - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - osDistribution: Union[str, "OSDistribution"] = None + confidential: Union[bool, Bool] = None + cpuRequirements: Optional[Union[dict, CPU]] = None + numberOfCoresLimit: Optional[int] = None + memoryRequirements: Optional[Union[dict, "Memory"]] = None + memoryLimit: Optional[Union[dict, "MemorySize"]] = None + gpuRequirements: Optional[Union[dict, GPU]] = None + gpuLimit: Optional[int] = None + confidentialComputingTechnology: Optional[Union[dict, "ConfidentialComputing"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.osDistribution): - self.MissingRequiredField("osDistribution") - if not isinstance(self.osDistribution, OSDistribution): - self.osDistribution = OSDistribution(self.osDistribution) + if self._is_empty(self.confidential): + self.MissingRequiredField("confidential") + if not isinstance(self.confidential, Bool): + self.confidential = Bool(self.confidential) + + if self.cpuRequirements is not None and not isinstance(self.cpuRequirements, CPU): + self.cpuRequirements = CPU(**as_dict(self.cpuRequirements)) + + if self.numberOfCoresLimit is not None and not isinstance(self.numberOfCoresLimit, int): + self.numberOfCoresLimit = int(self.numberOfCoresLimit) + + if self.memoryRequirements is not None and not isinstance(self.memoryRequirements, Memory): + self.memoryRequirements = Memory(**as_dict(self.memoryRequirements)) + + if self.memoryLimit is not None and not isinstance(self.memoryLimit, MemorySize): + self.memoryLimit = MemorySize(**as_dict(self.memoryLimit)) + + if self.gpuRequirements is not None and not isinstance(self.gpuRequirements, GPU): + self.gpuRequirements = GPU(**as_dict(self.gpuRequirements)) + + if self.gpuLimit is not None and not isinstance(self.gpuLimit, int): + self.gpuLimit = int(self.gpuLimit) + + if self.confidentialComputingTechnology is not None and not isinstance(self.confidentialComputingTechnology, ConfidentialComputing): + self.confidentialComputingTechnology = ConfidentialComputing(**as_dict(self.confidentialComputingTechnology)) super().__post_init__(**kwargs) -@dataclass -class Hypervisor(SoftwareResource): +@dataclass(repr=False) +class Issuer(YAMLRoot): """ - A special Gaia-X Software Resource describing a hypervisor to provided virtual machines. + An issuer of W3C Verifiable Credentials and Verifiable Presentations. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Hypervisor"] - class_class_curie: ClassVar[str] = "gx:Hypervisor" - class_name: ClassVar[str] = "Hypervisor" - class_model_uri: ClassVar[URIRef] = GX.Hypervisor + class_class_uri: ClassVar[URIRef] = GX["Issuer"] + class_class_curie: ClassVar[str] = "gx:Issuer" + class_name: ClassVar[str] = "Issuer" + class_model_uri: ClassVar[URIRef] = GX.Issuer - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - hypervisorType: Union[str, "HypervisorType"] = None + gaiaxTermsAndConditions: Union[str, "GaiaXTermsAndConditions"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.hypervisorType): - self.MissingRequiredField("hypervisorType") - if not isinstance(self.hypervisorType, HypervisorType): - self.hypervisorType = HypervisorType(self.hypervisorType) + if self._is_empty(self.gaiaxTermsAndConditions): + self.MissingRequiredField("gaiaxTermsAndConditions") + if not isinstance(self.gaiaxTermsAndConditions, GaiaXTermsAndConditions): + self.gaiaxTermsAndConditions = GaiaXTermsAndConditions(self.gaiaxTermsAndConditions) super().__post_init__(**kwargs) -@dataclass -class ServiceOffering(GaiaXEntity): +@dataclass(repr=False) +class LegalDocument(YAMLRoot): """ - A digital service available for order. + A document that has legal significance, typically outlining terms, conditions, or regulations. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ServiceOffering"] - class_class_curie: ClassVar[str] = "gx:ServiceOffering" - class_name: ClassVar[str] = "ServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.ServiceOffering + class_class_uri: ClassVar[URIRef] = GX["LegalDocument"] + class_class_curie: ClassVar[str] = "gx:LegalDocument" + class_name: ClassVar[str] = "LegalDocument" + class_model_uri: ClassVar[URIRef] = GX.LegalDocument - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None - dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - dependsOn: Optional[Union[str, List[str]]] = empty_list() - aggregationOfResources: Optional[Union[str, List[str]]] = empty_list() - dataProtectionRegime: Optional[Union[Union[str, "PersonalDataProtectionRegime"], List[Union[str, "PersonalDataProtectionRegime"]]]] = empty_list() - keyword: Optional[Union[str, List[str]]] = empty_list() - provisionType: Optional[Union[str, "ProvisionTypes"]] = None - endpoint: Optional[Union[dict, Endpoint]] = None - hostedOn: Optional[Union[str, List[str]]] = empty_list() + url: Union[str, URI] = None + mimeTypes: Optional[Union[Union[str, "MIMETypes"], List[Union[str, "MIMETypes"]]]] = empty_list() + governingLawCountries: Optional[Union[Union[str, "CountryNameAlpha2"], List[Union[str, "CountryNameAlpha2"]]]] = empty_list() + involvedParties: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.providedBy): - self.MissingRequiredField("providedBy") - if not isinstance(self.providedBy, LegalPersonRegistrationNumber): - self.providedBy = LegalPersonRegistrationNumber(self.providedBy) + if self._is_empty(self.url): + self.MissingRequiredField("url") + if not isinstance(self.url, URI): + self.url = URI(self.url) - if self._is_empty(self.serviceOfferingTermsAndConditions): - self.MissingRequiredField("serviceOfferingTermsAndConditions") - #self._normalize_inlined_as_dict(slot_name="serviceOfferingTermsAndConditions", slot_type=TermsAndConditions, key_name="url", keyed=False) + if not isinstance(self.mimeTypes, list): + self.mimeTypes = [self.mimeTypes] if self.mimeTypes is not None else [] + self.mimeTypes = [v if isinstance(v, MIMETypes) else MIMETypes(v) for v in self.mimeTypes] - if self._is_empty(self.servicePolicy): - self.MissingRequiredField("servicePolicy") - if not isinstance(self.servicePolicy, list): - self.servicePolicy = [self.servicePolicy] if self.servicePolicy is not None else [] - self.servicePolicy = [v if isinstance(v, str) else str(v) for v in self.servicePolicy] + if not isinstance(self.governingLawCountries, list): + self.governingLawCountries = [self.governingLawCountries] if self.governingLawCountries is not None else [] + self.governingLawCountries = [v if isinstance(v, CountryNameAlpha2) else CountryNameAlpha2(v) for v in self.governingLawCountries] - if self._is_empty(self.dataAccountExport): - self.MissingRequiredField("dataAccountExport") - #self._normalize_inlined_as_dict(slot_name="dataAccountExport", slot_type=DataAccountExport, key_name="requestType", keyed=False) + if not isinstance(self.involvedParties, list): + self.involvedParties = [self.involvedParties] if self.involvedParties is not None else [] + self.involvedParties = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.involvedParties] - if not isinstance(self.dependsOn, list): - self.dependsOn = [self.dependsOn] if self.dependsOn is not None else [] - self.dependsOn = [v if isinstance(v, str) else str(v) for v in self.dependsOn] + super().__post_init__(**kwargs) - if not isinstance(self.aggregationOfResources, list): - self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] - self.aggregationOfResources = [v if isinstance(v, str) else str(v) for v in self.aggregationOfResources] - - if not isinstance(self.dataProtectionRegime, list): - self.dataProtectionRegime = [self.dataProtectionRegime] if self.dataProtectionRegime is not None else [] - self.dataProtectionRegime = [v if isinstance(v, PersonalDataProtectionRegime) else PersonalDataProtectionRegime(v) for v in self.dataProtectionRegime] - if not isinstance(self.keyword, list): - self.keyword = [self.keyword] if self.keyword is not None else [] - self.keyword = [v if isinstance(v, str) else str(v) for v in self.keyword] +@dataclass(repr=False) +class CustomerDataProcessingTerms(LegalDocument): + """ + Legal document describing the processing terms regarding any Customer data therein. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.provisionType is not None and not isinstance(self.provisionType, ProvisionTypes): - self.provisionType = ProvisionTypes(self.provisionType) + class_class_uri: ClassVar[URIRef] = GX["CustomerDataProcessingTerms"] + class_class_curie: ClassVar[str] = "gx:CustomerDataProcessingTerms" + class_name: ClassVar[str] = "CustomerDataProcessingTerms" + class_model_uri: ClassVar[URIRef] = GX.CustomerDataProcessingTerms - if self.endpoint is not None and not isinstance(self.endpoint, Endpoint): - self.endpoint = Endpoint(**as_dict(self.endpoint)) + url: Union[str, URI] = None - if not isinstance(self.hostedOn, list): - self.hostedOn = [self.hostedOn] if self.hostedOn is not None else [] - self.hostedOn = [v if isinstance(v, str) else str(v) for v in self.hostedOn] +@dataclass(repr=False) +class DocumentChangeProcedures(LegalDocument): + """ + Legal document describing the provisions governing changes, regardless of their kind. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["DocumentChangeProcedures"] + class_class_curie: ClassVar[str] = "gx:DocumentChangeProcedures" + class_name: ClassVar[str] = "DocumentChangeProcedures" + class_model_uri: ClassVar[URIRef] = GX.DocumentChangeProcedures + url: Union[str, URI] = None -@dataclass -class InfrastructureServiceOffering(ServiceOffering): +@dataclass(repr=False) +class CopyrightAndIntellectualPropertyDocument(LegalDocument): """ - A digital service available for order and offering computational, storage and/pr network capabilities. + Legal document describing the provisions governing aspects regarding copyright or any other intellectual property + rights. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["InfrastructureServiceOffering"] - class_class_curie: ClassVar[str] = "gx:InfrastructureServiceOffering" - class_name: ClassVar[str] = "InfrastructureServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.InfrastructureServiceOffering + class_class_uri: ClassVar[URIRef] = GX["CopyrightAndIntellectualPropertyDocument"] + class_class_curie: ClassVar[str] = "gx:CopyrightAndIntellectualPropertyDocument" + class_name: ClassVar[str] = "CopyrightAndIntellectualPropertyDocument" + class_model_uri: ClassVar[URIRef] = GX.CopyrightAndIntellectualPropertyDocument - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None - dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" + url: Union[str, URI] = None -@dataclass -class ComputeServiceOffering(InfrastructureServiceOffering): +@dataclass(repr=False) +class CustomerDataAccessTerms(LegalDocument): """ - A digital service available for order and offering computational capabilities. + Legal document describing the terms governing customer data access. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ComputeServiceOffering"] - class_class_curie: ClassVar[str] = "gx:ComputeServiceOffering" - class_name: ClassVar[str] = "ComputeServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.ComputeServiceOffering + class_class_uri: ClassVar[URIRef] = GX["CustomerDataAccessTerms"] + class_class_curie: ClassVar[str] = "gx:CustomerDataAccessTerms" + class_name: ClassVar[str] = "CustomerDataAccessTerms" + class_model_uri: ClassVar[URIRef] = GX.CustomerDataAccessTerms - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None - dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - tenantSeparation: Optional[Union[str, "TenantSeparation"]] = None + url: Union[str, URI] = None - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.tenantSeparation is not None and not isinstance(self.tenantSeparation, TenantSeparation): - self.tenantSeparation = TenantSeparation(self.tenantSeparation) +@dataclass(repr=False) +class EnvironmentalImpactReport(LegalDocument): + """ + Legal document describing the terms governing customer data access. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["EnvironmentalImpactReport"] + class_class_curie: ClassVar[str] = "gx:EnvironmentalImpactReport" + class_name: ClassVar[str] = "EnvironmentalImpactReport" + class_model_uri: ClassVar[URIRef] = GX.EnvironmentalImpactReport + url: Union[str, URI] = None -@dataclass -class VirtualMachineServiceOffering(ComputeServiceOffering): +@dataclass(repr=False) +class RoleAndResponsibilities(LegalDocument): """ - A digital service available for order and offering computational capabilities. + Legal document describing the role and responsibilities of the provider and the customer. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["VirtualMachineServiceOffering"] - class_class_curie: ClassVar[str] = "gx:VirtualMachineServiceOffering" - class_name: ClassVar[str] = "VirtualMachineServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.VirtualMachineServiceOffering - - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None - dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None - codeArtifact: Union[Union[dict, "VMImage"], List[Union[dict, "VMImage"]]] = None - instantiationReq: Union[Union[dict, "ServerFlavor"], List[Union[dict, "ServerFlavor"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" + class_class_uri: ClassVar[URIRef] = GX["RoleAndResponsibilities"] + class_class_curie: ClassVar[str] = "gx:RoleAndResponsibilities" + class_name: ClassVar[str] = "RoleAndResponsibilities" + class_model_uri: ClassVar[URIRef] = GX.RoleAndResponsibilities - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.codeArtifact): - self.MissingRequiredField("codeArtifact") - #self._normalize_inlined_as_dict(slot_name="codeArtifact", slot_type=VMImage, key_name="copyrightOwnedBy", keyed=False) + url: Union[str, URI] = None - if self._is_empty(self.instantiationReq): - self.MissingRequiredField("instantiationReq") - #self._normalize_inlined_as_dict(slot_name="instantiationReq", slot_type=ServerFlavor, key_name="cpu", keyed=False) +@dataclass(repr=False) +class CustomerAuditingRights(LegalDocument): + """ + Legal document describing the customer auditing rights. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["CustomerAuditingRights"] + class_class_curie: ClassVar[str] = "gx:CustomerAuditingRights" + class_name: ClassVar[str] = "CustomerAuditingRights" + class_model_uri: ClassVar[URIRef] = GX.CustomerAuditingRights + url: Union[str, URI] = None -@dataclass -class ContainerServiceOffering(ComputeServiceOffering): +@dataclass(repr=False) +class LegallyBindingAct(LegalDocument): """ - A digital service available for order and providing containers. + Legal document describing the legally binding act. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ContainerServiceOffering"] - class_class_curie: ClassVar[str] = "gx:ContainerServiceOffering" - class_name: ClassVar[str] = "ContainerServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.ContainerServiceOffering - - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None - dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None - codeArtifact: Union[Union[dict, "ContainerImage"], List[Union[dict, "ContainerImage"]]] = None - instantiationReq: Union[Union[dict, "ContainerResourceLimits"], List[Union[dict, "ContainerResourceLimits"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" + class_class_uri: ClassVar[URIRef] = GX["LegallyBindingAct"] + class_class_curie: ClassVar[str] = "gx:LegallyBindingAct" + class_name: ClassVar[str] = "LegallyBindingAct" + class_model_uri: ClassVar[URIRef] = GX.LegallyBindingAct - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.codeArtifact): - self.MissingRequiredField("codeArtifact") - #self._normalize_inlined_as_dict(slot_name="codeArtifact", slot_type=ContainerImage, key_name="copyrightOwnedBy", keyed=False) + url: Union[str, URI] = None - if self._is_empty(self.instantiationReq): - self.MissingRequiredField("instantiationReq") - #self._normalize_inlined_as_dict(slot_name="instantiationReq", slot_type=ContainerResourceLimits, key_name="confidential", keyed=False) +@dataclass(repr=False) +class InformationSecurityOrganization(LegalDocument): + """ + Legal document describing the information security organization within the entity. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["InformationSecurityOrganization"] + class_class_curie: ClassVar[str] = "gx:InformationSecurityOrganization" + class_name: ClassVar[str] = "InformationSecurityOrganization" + class_model_uri: ClassVar[URIRef] = GX.InformationSecurityOrganization + url: Union[str, URI] = None -@dataclass -class BareMetalServiceOffering(ComputeServiceOffering): +@dataclass(repr=False) +class InformationSecurityPolicies(LegalDocument): """ - A digital service available for order and offering bare metal computational capabilities. + Legal document describing the policies governing information security. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["BareMetalServiceOffering"] - class_class_curie: ClassVar[str] = "gx:BareMetalServiceOffering" - class_name: ClassVar[str] = "BareMetalServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.BareMetalServiceOffering - - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None - dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None - codeArtifact: Union[Union[dict, PXEImage], List[Union[dict, PXEImage]]] = None - instantiationReq: Union[Union[dict, "ServerFlavor"], List[Union[dict, "ServerFlavor"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" + class_class_uri: ClassVar[URIRef] = GX["InformationSecurityPolicies"] + class_class_curie: ClassVar[str] = "gx:InformationSecurityPolicies" + class_name: ClassVar[str] = "InformationSecurityPolicies" + class_model_uri: ClassVar[URIRef] = GX.InformationSecurityPolicies - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.codeArtifact): - self.MissingRequiredField("codeArtifact") - #self._normalize_inlined_as_dict(slot_name="codeArtifact", slot_type=PXEImage, key_name="copyrightOwnedBy", keyed=False) + url: Union[str, URI] = None - if self._is_empty(self.instantiationReq): - self.MissingRequiredField("instantiationReq") - #self._normalize_inlined_as_dict(slot_name="instantiationReq", slot_type=ServerFlavor, key_name="cpu", keyed=False) +@dataclass(repr=False) +class InformationSecurityRiskManagement(LegalDocument): + """ + Legal document describing the risk management related to information security. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["InformationSecurityRiskManagement"] + class_class_curie: ClassVar[str] = "gx:InformationSecurityRiskManagement" + class_name: ClassVar[str] = "InformationSecurityRiskManagement" + class_model_uri: ClassVar[URIRef] = GX.InformationSecurityRiskManagement + url: Union[str, URI] = None -@dataclass -class TermsAndConditions(YAMLRoot): +@dataclass(repr=False) +class EmployeeResponsibilities(LegalDocument): """ - Terms and Conditions applying to a service offering. + Legal document describing the responsibilities of employees in maintaining security. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["TermsAndConditions"] - class_class_curie: ClassVar[str] = "gx:TermsAndConditions" - class_name: ClassVar[str] = "TermsAndConditions" - class_model_uri: ClassVar[URIRef] = GX.TermsAndConditions + class_class_uri: ClassVar[URIRef] = GX["EmployeeResponsibilities"] + class_class_curie: ClassVar[str] = "gx:EmployeeResponsibilities" + class_name: ClassVar[str] = "EmployeeResponsibilities" + class_model_uri: ClassVar[URIRef] = GX.EmployeeResponsibilities url: Union[str, URI] = None - hash: str = None - - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.url): - self.MissingRequiredField("url") - if not isinstance(self.url, URI): - self.url = URI(self.url) - if self._is_empty(self.hash): - self.MissingRequiredField("hash") - if not isinstance(self.hash, str): - self.hash = str(self.hash) +@dataclass(repr=False) +class AssetsManagement(LegalDocument): + """ + Legal document describing the management of assets related to security. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["AssetsManagement"] + class_class_curie: ClassVar[str] = "gx:AssetsManagement" + class_name: ClassVar[str] = "AssetsManagement" + class_model_uri: ClassVar[URIRef] = GX.AssetsManagement + url: Union[str, URI] = None -@dataclass -class DataAccountExport(YAMLRoot): +@dataclass(repr=False) +class PhysicalSecurity(LegalDocument): """ - List of methods to export data from your account out of the service. + Legal document describing the physical security measures within the organization. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["DataAccountExport"] - class_class_curie: ClassVar[str] = "gx:DataAccountExport" - class_name: ClassVar[str] = "DataAccountExport" - class_model_uri: ClassVar[URIRef] = GX.DataAccountExport - - requestType: Union[str, "RequestTypes"] = None - accessType: Union[str, "AccessTypes"] = None - formatType: Union[str, "MIMETypes"] = None - - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.requestType): - self.MissingRequiredField("requestType") - if not isinstance(self.requestType, RequestTypes): - self.requestType = RequestTypes(self.requestType) + class_class_uri: ClassVar[URIRef] = GX["PhysicalSecurity"] + class_class_curie: ClassVar[str] = "gx:PhysicalSecurity" + class_name: ClassVar[str] = "PhysicalSecurity" + class_model_uri: ClassVar[URIRef] = GX.PhysicalSecurity - if self._is_empty(self.accessType): - self.MissingRequiredField("accessType") - if not isinstance(self.accessType, AccessTypes): - self.accessType = AccessTypes(self.accessType) + url: Union[str, URI] = None - if self._is_empty(self.formatType): - self.MissingRequiredField("formatType") - if not isinstance(self.formatType, MIMETypes): - self.formatType = MIMETypes(self.formatType) +@dataclass(repr=False) +class OperationalSecurity(LegalDocument): + """ + Legal document describing the operational security practices within the organization. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["OperationalSecurity"] + class_class_curie: ClassVar[str] = "gx:OperationalSecurity" + class_name: ClassVar[str] = "OperationalSecurity" + class_model_uri: ClassVar[URIRef] = GX.OperationalSecurity + url: Union[str, URI] = None -@dataclass -class StandardConformity(YAMLRoot): +@dataclass(repr=False) +class AccessControlManagement(LegalDocument): """ - Details about standard applied to Gaia-X entities. + Legal document describing the management of access controls within the organization. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["StandardConformity"] - class_class_curie: ClassVar[str] = "gx:StandardConformity" - class_name: ClassVar[str] = "StandardConformity" - class_model_uri: ClassVar[URIRef] = GX.StandardConformity - - title: str = None - standardReference: Union[str, URI] = None - publisher: Optional[str] = None - - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.title): - self.MissingRequiredField("title") - if not isinstance(self.title, str): - self.title = str(self.title) + class_class_uri: ClassVar[URIRef] = GX["AccessControlManagement"] + class_class_curie: ClassVar[str] = "gx:AccessControlManagement" + class_name: ClassVar[str] = "AccessControlManagement" + class_model_uri: ClassVar[URIRef] = GX.AccessControlManagement - if self._is_empty(self.standardReference): - self.MissingRequiredField("standardReference") - if not isinstance(self.standardReference, URI): - self.standardReference = URI(self.standardReference) + url: Union[str, URI] = None - if self.publisher is not None and not isinstance(self.publisher, str): - self.publisher = str(self.publisher) +@dataclass(repr=False) +class ChangeAndConfigurationManagement(LegalDocument): + """ + Legal document describing the management of changes and configurations related to security. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["ChangeAndConfigurationManagement"] + class_class_curie: ClassVar[str] = "gx:ChangeAndConfigurationManagement" + class_name: ClassVar[str] = "ChangeAndConfigurationManagement" + class_model_uri: ClassVar[URIRef] = GX.ChangeAndConfigurationManagement + url: Union[str, URI] = None -@dataclass -class DataResource(VirtualResource): +@dataclass(repr=False) +class DevelopmentCycleSecurity(LegalDocument): """ - A dataset exposed through a service instance. + Legal document describing the security practices during the development cycle. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["DataResource"] - class_class_curie: ClassVar[str] = "gx:DataResource" - class_name: ClassVar[str] = "DataResource" - class_model_uri: ClassVar[URIRef] = GX.DataResource + class_class_uri: ClassVar[URIRef] = GX["DevelopmentCycleSecurity"] + class_class_curie: ClassVar[str] = "gx:DevelopmentCycleSecurity" + class_name: ClassVar[str] = "DevelopmentCycleSecurity" + class_model_uri: ClassVar[URIRef] = GX.DevelopmentCycleSecurity - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - producedBy: Union[str, LegalPersonRegistrationNumber] = None - exposedThrough: Union[Union[dict, "DataExchangeComponent"], List[Union[dict, "DataExchangeComponent"]]] = None - containsPII: Union[bool, Bool] = None - obsoleteDateTime: Optional[Union[str, XSDDateTime]] = None - expirationDateTime: Optional[Union[str, XSDDateTime]] = None - dataController: Optional[Union[Union[dict, Participant], List[Union[dict, Participant]]]] = empty_list() - consent: Optional[Union[Union[dict, "Consent"], List[Union[dict, "Consent"]]]] = empty_list() + url: Union[str, URI] = None - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.producedBy): - self.MissingRequiredField("producedBy") - if not isinstance(self.producedBy, LegalPersonRegistrationNumber): - self.producedBy = LegalPersonRegistrationNumber(self.producedBy) +@dataclass(repr=False) +class ProcurementManagementSecurity(LegalDocument): + """ + Legal document describing the security considerations in procurement management. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self._is_empty(self.exposedThrough): - self.MissingRequiredField("exposedThrough") - if not isinstance(self.exposedThrough, list): - self.exposedThrough = [self.exposedThrough] if self.exposedThrough is not None else [] - self.exposedThrough = [v if isinstance(v, DataExchangeComponent) else DataExchangeComponent(**as_dict(v)) for v in self.exposedThrough] + class_class_uri: ClassVar[URIRef] = GX["ProcurementManagementSecurity"] + class_class_curie: ClassVar[str] = "gx:ProcurementManagementSecurity" + class_name: ClassVar[str] = "ProcurementManagementSecurity" + class_model_uri: ClassVar[URIRef] = GX.ProcurementManagementSecurity - if self._is_empty(self.containsPII): - self.MissingRequiredField("containsPII") - if not isinstance(self.containsPII, Bool): - self.containsPII = Bool(self.containsPII) + url: Union[str, URI] = None - if self.obsoleteDateTime is not None and not isinstance(self.obsoleteDateTime, XSDDateTime): - self.obsoleteDateTime = XSDDateTime(self.obsoleteDateTime) +@dataclass(repr=False) +class SecurityIncidentManagement(LegalDocument): + """ + Legal document describing the management of security incidents. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.expirationDateTime is not None and not isinstance(self.expirationDateTime, XSDDateTime): - self.expirationDateTime = XSDDateTime(self.expirationDateTime) + class_class_uri: ClassVar[URIRef] = GX["SecurityIncidentManagement"] + class_class_curie: ClassVar[str] = "gx:SecurityIncidentManagement" + class_name: ClassVar[str] = "SecurityIncidentManagement" + class_model_uri: ClassVar[URIRef] = GX.SecurityIncidentManagement - if not isinstance(self.dataController, list): - self.dataController = [self.dataController] if self.dataController is not None else [] - self.dataController = [v if isinstance(v, Participant) else Participant(**as_dict(v)) for v in self.dataController] + url: Union[str, URI] = None - #self._normalize_inlined_as_dict(slot_name="consent", slot_type=Consent, key_name="legalBasis", keyed=False) +@dataclass(repr=False) +class BusinessContinuityMeasures(LegalDocument): + """ + Legal document describing the measures to ensure business continuity during security events. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["BusinessContinuityMeasures"] + class_class_curie: ClassVar[str] = "gx:BusinessContinuityMeasures" + class_name: ClassVar[str] = "BusinessContinuityMeasures" + class_model_uri: ClassVar[URIRef] = GX.BusinessContinuityMeasures + url: Union[str, URI] = None -@dataclass -class Consent(YAMLRoot): +@dataclass(repr=False) +class ComplianceAssurance(LegalDocument): """ - Information on the legitimate processing of information related to PII. + Legal document describing the assurance of compliance with security standards. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Consent"] - class_class_curie: ClassVar[str] = "gx:Consent" - class_name: ClassVar[str] = "Consent" - class_model_uri: ClassVar[URIRef] = GX.Consent + class_class_uri: ClassVar[URIRef] = GX["ComplianceAssurance"] + class_class_curie: ClassVar[str] = "gx:ComplianceAssurance" + class_name: ClassVar[str] = "ComplianceAssurance" + class_model_uri: ClassVar[URIRef] = GX.ComplianceAssurance - legalBasis: str = None - dataProtectionContactPoint: Union[str, List[str]] = None - purpose: Union[str, List[str]] = None - consentWithdrawalContactPoint: Union[str, List[str]] = None + url: Union[str, URI] = None - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.legalBasis): - self.MissingRequiredField("legalBasis") - if not isinstance(self.legalBasis, str): - self.legalBasis = str(self.legalBasis) +@dataclass(repr=False) +class UserDocumentationMaintenance(LegalDocument): + """ + Legal document describing the maintenance of user documentation related to security. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self._is_empty(self.dataProtectionContactPoint): - self.MissingRequiredField("dataProtectionContactPoint") - if not isinstance(self.dataProtectionContactPoint, list): - self.dataProtectionContactPoint = [self.dataProtectionContactPoint] if self.dataProtectionContactPoint is not None else [] - self.dataProtectionContactPoint = [v if isinstance(v, str) else str(v) for v in self.dataProtectionContactPoint] + class_class_uri: ClassVar[URIRef] = GX["UserDocumentationMaintenance"] + class_class_curie: ClassVar[str] = "gx:UserDocumentationMaintenance" + class_name: ClassVar[str] = "UserDocumentationMaintenance" + class_model_uri: ClassVar[URIRef] = GX.UserDocumentationMaintenance - if self._is_empty(self.purpose): - self.MissingRequiredField("purpose") - if not isinstance(self.purpose, list): - self.purpose = [self.purpose] if self.purpose is not None else [] - self.purpose = [v if isinstance(v, str) else str(v) for v in self.purpose] + url: Union[str, URI] = None - if self._is_empty(self.consentWithdrawalContactPoint): - self.MissingRequiredField("consentWithdrawalContactPoint") - if not isinstance(self.consentWithdrawalContactPoint, list): - self.consentWithdrawalContactPoint = [self.consentWithdrawalContactPoint] if self.consentWithdrawalContactPoint is not None else [] - self.consentWithdrawalContactPoint = [v if isinstance(v, str) else str(v) for v in self.consentWithdrawalContactPoint] +@dataclass(repr=False) +class GovernmentInvestigationManagement(LegalDocument): + """ + Legal document describing the management of government investigations related to security. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["GovernmentInvestigationManagement"] + class_class_curie: ClassVar[str] = "gx:GovernmentInvestigationManagement" + class_name: ClassVar[str] = "GovernmentInvestigationManagement" + class_model_uri: ClassVar[URIRef] = GX.GovernmentInvestigationManagement + url: Union[str, URI] = None -class DataExchangeComponent(YAMLRoot): +@dataclass(repr=False) +class ProductSecurity(LegalDocument): """ - A service/resource used to make a data resource available. + Legal document describing the security practices related to product development and maintenance. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["DataExchangeComponent"] - class_class_curie: ClassVar[str] = "gx:DataExchangeComponent" - class_name: ClassVar[str] = "DataExchangeComponent" - class_model_uri: ClassVar[URIRef] = GX.DataExchangeComponent + class_class_uri: ClassVar[URIRef] = GX["ProductSecurity"] + class_class_curie: ClassVar[str] = "gx:ProductSecurity" + class_name: ClassVar[str] = "ProductSecurity" + class_model_uri: ClassVar[URIRef] = GX.ProductSecurity + url: Union[str, URI] = None -class AvailabilityZone(Resource): +@dataclass(repr=False) +class DataProtectionRegulationMeasures(LegalDocument): """ - An availability zone is an aggregation of resources - physical and abstract - in a non-redundant setup often - associated with a single datacenter room + Legal document addressing requirement measures concerning GDPR (as GDPR Art. 28 (9)). """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["AvailabilityZone"] - class_class_curie: ClassVar[str] = "gx:AvailabilityZone" - class_name: ClassVar[str] = "AvailabilityZone" - class_model_uri: ClassVar[URIRef] = GX.AvailabilityZone + class_class_uri: ClassVar[URIRef] = GX["DataProtectionRegulationMeasures"] + class_class_curie: ClassVar[str] = "gx:DataProtectionRegulationMeasures" + class_name: ClassVar[str] = "DataProtectionRegulationMeasures" + class_model_uri: ClassVar[URIRef] = GX.DataProtectionRegulationMeasures + url: Union[str, URI] = None -@dataclass -class Datacenter(PhysicalResource): +@dataclass(repr=False) +class ServiceAgreementOffer(LegalDocument): """ - A datacenter is an aggregation of availability zones + Legal document describing the ability to establish a contract per a set of governing law countries. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Datacenter"] - class_class_curie: ClassVar[str] = "gx:Datacenter" - class_name: ClassVar[str] = "Datacenter" - class_model_uri: ClassVar[URIRef] = GX.Datacenter + class_class_uri: ClassVar[URIRef] = GX["ServiceAgreementOffer"] + class_class_curie: ClassVar[str] = "gx:ServiceAgreementOffer" + class_name: ClassVar[str] = "ServiceAgreementOffer" + class_model_uri: ClassVar[URIRef] = GX.ServiceAgreementOffer - maintainedBy: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None - location: Union[Union[dict, Address], List[Union[dict, Address]]] = None - aggregationOfResources: Union[Union[dict, AvailabilityZone], List[Union[dict, AvailabilityZone]]] = None + url: Union[str, URI] = None - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.aggregationOfResources): - self.MissingRequiredField("aggregationOfResources") - if not isinstance(self.aggregationOfResources, list): - self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] - self.aggregationOfResources = [v if isinstance(v, AvailabilityZone) else AvailabilityZone(**as_dict(v)) for v in self.aggregationOfResources] +class RegistrationNumber(YAMLRoot): + """ + Country's registration number, which identifies one specific entity. Allowed entries are Local, VatID, lei code, + EODI, and EUID. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["RegistrationNumber"] + class_class_curie: ClassVar[str] = "gx:RegistrationNumber" + class_name: ClassVar[str] = "RegistrationNumber" + class_model_uri: ClassVar[URIRef] = GX.RegistrationNumber -@dataclass -class Region(Resource): - """ - A region is an aggregation of datacenters. - """ +@dataclass(repr=False) +class LocalRegistrationNumber(RegistrationNumber): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Region"] - class_class_curie: ClassVar[str] = "gx:Region" - class_name: ClassVar[str] = "Region" - class_model_uri: ClassVar[URIRef] = GX.Region + class_class_uri: ClassVar[URIRef] = GX["LocalRegistrationNumber"] + class_class_curie: ClassVar[str] = "gx:LocalRegistrationNumber" + class_name: ClassVar[str] = "LocalRegistrationNumber" + class_model_uri: ClassVar[URIRef] = GX.LocalRegistrationNumber - aggregationOfResources: Union[Union[dict, Datacenter], List[Union[dict, Datacenter]]] = None + local: Union[str, LocalRegistrationNumberLocal] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.aggregationOfResources): - self.MissingRequiredField("aggregationOfResources") - #self._normalize_inlined_as_dict(slot_name="aggregationOfResources", slot_type=Datacenter, key_name="maintainedBy", keyed=False) + if self._is_empty(self.local): + self.MissingRequiredField("local") + if not isinstance(self.local, LocalRegistrationNumberLocal): + self.local = LocalRegistrationNumberLocal(self.local) super().__post_init__(**kwargs) -@dataclass -class ContainerImage(Image): - """ - Image available for containers. - """ +@dataclass(repr=False) +class VatID(RegistrationNumber): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ContainerImage"] - class_class_curie: ClassVar[str] = "gx:ContainerImage" - class_name: ClassVar[str] = "ContainerImage" - class_model_uri: ClassVar[URIRef] = GX.ContainerImage + class_class_uri: ClassVar[URIRef] = GX["VatID"] + class_class_curie: ClassVar[str] = "gx:VatID" + class_name: ClassVar[str] = "VatID" + class_model_uri: ClassVar[URIRef] = GX.VatID - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - baseContainerImage: Union[dict, "BaseContainerImage"] = None - containerFormat: Union[str, "ContainerFormat"] = None + vatID: Union[str, VatIDVatID] = None + countryCode: Optional[Union[str, "CountryNameAlpha2"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.baseContainerImage): - self.MissingRequiredField("baseContainerImage") - if not isinstance(self.baseContainerImage, BaseContainerImage): - self.baseContainerImage = BaseContainerImage(**as_dict(self.baseContainerImage)) + if self._is_empty(self.vatID): + self.MissingRequiredField("vatID") + if not isinstance(self.vatID, VatIDVatID): + self.vatID = VatIDVatID(self.vatID) - if self._is_empty(self.containerFormat): - self.MissingRequiredField("containerFormat") - if not isinstance(self.containerFormat, ContainerFormat): - self.containerFormat = ContainerFormat(self.containerFormat) + if self.countryCode is not None and not isinstance(self.countryCode, CountryNameAlpha2): + self.countryCode = CountryNameAlpha2(self.countryCode) super().__post_init__(**kwargs) -@dataclass -class BaseContainerImage(YAMLRoot): - """ - A set of tags for an image and a repository link - """ +@dataclass(repr=False) +class LeiCode(RegistrationNumber): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["BaseContainerImage"] - class_class_curie: ClassVar[str] = "gx:BaseContainerImage" - class_name: ClassVar[str] = "BaseContainerImage" - class_model_uri: ClassVar[URIRef] = GX.BaseContainerImage + class_class_uri: ClassVar[URIRef] = GX["LeiCode"] + class_class_curie: ClassVar[str] = "gx:LeiCode" + class_name: ClassVar[str] = "LeiCode" + class_model_uri: ClassVar[URIRef] = GX.LeiCode - containerImageLink: Union[str, URI] = None - containerImageTag: Optional[Union[str, List[str]]] = empty_list() + leiCode: Union[str, LeiCodeLeiCode] = None + countryCode: Optional[Union[str, "CountryNameAlpha2"]] = None + subdivisionCountryCode: Optional[Union[str, "RegionCode"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.containerImageLink): - self.MissingRequiredField("containerImageLink") - if not isinstance(self.containerImageLink, URI): - self.containerImageLink = URI(self.containerImageLink) + if self._is_empty(self.leiCode): + self.MissingRequiredField("leiCode") + if not isinstance(self.leiCode, LeiCodeLeiCode): + self.leiCode = LeiCodeLeiCode(self.leiCode) - if not isinstance(self.containerImageTag, list): - self.containerImageTag = [self.containerImageTag] if self.containerImageTag is not None else [] - self.containerImageTag = [v if isinstance(v, str) else str(v) for v in self.containerImageTag] + if self.countryCode is not None and not isinstance(self.countryCode, CountryNameAlpha2): + self.countryCode = CountryNameAlpha2(self.countryCode) + + if self.subdivisionCountryCode is not None and not isinstance(self.subdivisionCountryCode, RegionCode): + self.subdivisionCountryCode = RegionCode(self.subdivisionCountryCode) super().__post_init__(**kwargs) -@dataclass -class ContainerResourceLimits(InstantiationRequirement): - """ - InstantiationRequirements for containers (available resources and associated limits). - """ +@dataclass(repr=False) +class EORI(RegistrationNumber): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ContainerResourceLimits"] - class_class_curie: ClassVar[str] = "gx:ContainerResourceLimits" - class_name: ClassVar[str] = "ContainerResourceLimits" - class_model_uri: ClassVar[URIRef] = GX.ContainerResourceLimits + class_class_uri: ClassVar[URIRef] = GX["EORI"] + class_class_curie: ClassVar[str] = "gx:EORI" + class_name: ClassVar[str] = "EORI" + class_model_uri: ClassVar[URIRef] = GX.EORI - confidential: Union[bool, Bool] = None - cpuRequirements: Optional[Union[dict, CPU]] = None - numberOfCoresLimit: Optional[int] = None - memoryRequirements: Optional[Union[dict, Memory]] = None - memoryLimit: Optional[Union[dict, MemorySize]] = None - gpuRequirements: Optional[Union[dict, GPU]] = None - gpuLimit: Optional[int] = None - confidentialComputingTechnology: Optional[Union[dict, "ConfidentialComputing"]] = None + eori: Union[str, EORIEori] = None + country: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.confidential): - self.MissingRequiredField("confidential") - if not isinstance(self.confidential, Bool): - self.confidential = Bool(self.confidential) + if self._is_empty(self.eori): + self.MissingRequiredField("eori") + if not isinstance(self.eori, EORIEori): + self.eori = EORIEori(self.eori) - if self.cpuRequirements is not None and not isinstance(self.cpuRequirements, CPU): - self.cpuRequirements = CPU(**as_dict(self.cpuRequirements)) + if self.country is not None and not isinstance(self.country, str): + self.country = str(self.country) - if self.numberOfCoresLimit is not None and not isinstance(self.numberOfCoresLimit, int): - self.numberOfCoresLimit = int(self.numberOfCoresLimit) + super().__post_init__(**kwargs) - if self.memoryRequirements is not None and not isinstance(self.memoryRequirements, Memory): - self.memoryRequirements = Memory(**as_dict(self.memoryRequirements)) - if self.memoryLimit is not None and not isinstance(self.memoryLimit, MemorySize): - self.memoryLimit = MemorySize(**as_dict(self.memoryLimit)) +@dataclass(repr=False) +class EUID(RegistrationNumber): + _inherited_slots: ClassVar[List[str]] = [] - if self.gpuRequirements is not None and not isinstance(self.gpuRequirements, GPU): - self.gpuRequirements = GPU(**as_dict(self.gpuRequirements)) + class_class_uri: ClassVar[URIRef] = GX["EUID"] + class_class_curie: ClassVar[str] = "gx:EUID" + class_name: ClassVar[str] = "EUID" + class_model_uri: ClassVar[URIRef] = GX.EUID - if self.gpuLimit is not None and not isinstance(self.gpuLimit, int): - self.gpuLimit = int(self.gpuLimit) + euid: Union[str, EUIDEuid] = None - if self.confidentialComputingTechnology is not None and not isinstance(self.confidentialComputingTechnology, ConfidentialComputing): - self.confidentialComputingTechnology = ConfidentialComputing(**as_dict(self.confidentialComputingTechnology)) + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.euid): + self.MissingRequiredField("euid") + if not isinstance(self.euid, EUIDEuid): + self.euid = EUIDEuid(self.euid) super().__post_init__(**kwargs) -@dataclass -class DataProtectionPolicy(YAMLRoot): +@dataclass(repr=False) +class TaxID(RegistrationNumber): """ - A container class for various data protection features, such as backup or replication + Company tax ID used to identify it through the OpenCorporate service. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["DataProtectionPolicy"] - class_class_curie: ClassVar[str] = "gx:DataProtectionPolicy" - class_name: ClassVar[str] = "DataProtectionPolicy" - class_model_uri: ClassVar[URIRef] = GX.DataProtectionPolicy + class_class_uri: ClassVar[URIRef] = GX["TaxID"] + class_class_curie: ClassVar[str] = "gx:TaxID" + class_name: ClassVar[str] = "TaxID" + class_model_uri: ClassVar[URIRef] = GX.TaxID - protectionFrequency: Union[str, "ProtectionFrequency"] = None - protectionRetention: Union[dict, RetentionDuration] = None - protectionMethod: Optional[Union[str, "ProtectionMethod"]] = None + taxId: Union[str, TaxIDTaxId] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.protectionFrequency): - self.MissingRequiredField("protectionFrequency") - if not isinstance(self.protectionFrequency, ProtectionFrequency): - self.protectionFrequency = ProtectionFrequency(self.protectionFrequency) - - if self._is_empty(self.protectionRetention): - self.MissingRequiredField("protectionRetention") - if not isinstance(self.protectionRetention, RetentionDuration): - self.protectionRetention = RetentionDuration(**as_dict(self.protectionRetention)) - - if self.protectionMethod is not None and not isinstance(self.protectionMethod, ProtectionMethod): - self.protectionMethod = ProtectionMethod(self.protectionMethod) + if self._is_empty(self.taxId): + self.MissingRequiredField("taxId") + if not isinstance(self.taxId, TaxIDTaxId): + self.taxId = TaxIDTaxId(self.taxId) super().__post_init__(**kwargs) -@dataclass -class BackupPolicy(DataProtectionPolicy): +@dataclass(repr=False) +class LegitimateInterest(YAMLRoot): """ - Describe data protection features based on Backup for storage services + A legitimate interest entity describing reasons for processing personal identifiable information (PII). """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["BackupPolicy"] - class_class_curie: ClassVar[str] = "gx:BackupPolicy" - class_name: ClassVar[str] = "BackupPolicy" - class_model_uri: ClassVar[URIRef] = GX.BackupPolicy + class_class_uri: ClassVar[URIRef] = GX["LegitimateInterest"] + class_class_curie: ClassVar[str] = "gx:LegitimateInterest" + class_name: ClassVar[str] = "LegitimateInterest" + class_model_uri: ClassVar[URIRef] = GX.LegitimateInterest - protectionFrequency: Union[str, "ProtectionFrequency"] = None - protectionRetention: Union[dict, RetentionDuration] = None - backupLocation: Union[Union[dict, Resource], List[Union[dict, Resource]]] = None - backupReplication: Optional[Union[Union[dict, "ReplicationPolicy"], List[Union[dict, "ReplicationPolicy"]]]] = empty_list() + legalBasis: str = None + dataProtectionContact: str = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.backupLocation): - self.MissingRequiredField("backupLocation") - if not isinstance(self.backupLocation, list): - self.backupLocation = [self.backupLocation] if self.backupLocation is not None else [] - self.backupLocation = [v if isinstance(v, Resource) else Resource(**as_dict(v)) for v in self.backupLocation] + if self._is_empty(self.legalBasis): + self.MissingRequiredField("legalBasis") + if not isinstance(self.legalBasis, str): + self.legalBasis = str(self.legalBasis) - #self._normalize_inlined_as_dict(slot_name="backupReplication", slot_type=ReplicationPolicy, key_name="protectionFrequency", keyed=False) + if self._is_empty(self.dataProtectionContact): + self.MissingRequiredField("dataProtectionContact") + if not isinstance(self.dataProtectionContact, str): + self.dataProtectionContact = str(self.dataProtectionContact) super().__post_init__(**kwargs) -@dataclass -class SnapshotPolicy(DataProtectionPolicy): +@dataclass(repr=False) +class Measure(YAMLRoot): """ - Describe data protection features based on Snapshot for storage services + Defines a specific measure taken, including related legal documentation. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["SnapshotPolicy"] - class_class_curie: ClassVar[str] = "gx:SnapshotPolicy" - class_name: ClassVar[str] = "SnapshotPolicy" - class_model_uri: ClassVar[URIRef] = GX.SnapshotPolicy + class_class_uri: ClassVar[URIRef] = GX["Measure"] + class_class_curie: ClassVar[str] = "gx:Measure" + class_name: ClassVar[str] = "Measure" + class_model_uri: ClassVar[URIRef] = GX.Measure - protectionFrequency: Union[str, "ProtectionFrequency"] = None - protectionRetention: Union[dict, RetentionDuration] = None - snapshotReplication: Optional[Union[Union[dict, "ReplicationPolicy"], List[Union[dict, "ReplicationPolicy"]]]] = empty_list() + description: str = None + legalDocuments: Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - #self._normalize_inlined_as_dictself._normalize_inlined_as_dict(slot_name="snapshotReplication", slot_type=ReplicationPolicy, key_name="protectionFrequency", keyed=False) + if self._is_empty(self.description): + self.MissingRequiredField("description") + if not isinstance(self.description, str): + self.description = str(self.description) + + if self._is_empty(self.legalDocuments): + self.MissingRequiredField("legalDocuments") + self._normalize_inlined_as_dict(slot_name="legalDocuments", slot_type=LegalDocument, key_name="url", keyed=False) super().__post_init__(**kwargs) -@dataclass -class ReplicationPolicy(DataProtectionPolicy): +@dataclass(repr=False) +class Memory(Device): """ - Describe data protection features based on Replication for storage services + Details with respect to properties and capabilities of RAM. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ReplicationPolicy"] - class_class_curie: ClassVar[str] = "gx:ReplicationPolicy" - class_name: ClassVar[str] = "ReplicationPolicy" - class_model_uri: ClassVar[URIRef] = GX.ReplicationPolicy + class_class_uri: ClassVar[URIRef] = GX["Memory"] + class_class_curie: ClassVar[str] = "gx:Memory" + class_name: ClassVar[str] = "Memory" + class_model_uri: ClassVar[URIRef] = GX.Memory - protectionFrequency: Union[str, "ProtectionFrequency"] = None - protectionRetention: Union[dict, RetentionDuration] = None - synchronousReplication: Optional[Union[bool, Bool]] = None - consistencyType: Optional[Union[str, "ConsistencyType"]] = None - replicaNumber: Optional[Union[int, List[int]]] = empty_list() - geoReplication: Optional[Union[Union[str, "GeoReplicationScope"], List[Union[str, "GeoReplicationScope"]]]] = empty_list() + memorySize: Union[dict, "MemorySize"] = None + memoryClass: Optional[Union[str, "MemoryClasses"]] = "other" + memoryRank: Optional[Union[str, "MemoryRanks"]] = "other" + eccEnabled: Optional[Union[bool, Bool]] = False + hardwareEncryption: Optional[Union[bool, Bool]] = False def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.synchronousReplication is not None and not isinstance(self.synchronousReplication, Bool): - self.synchronousReplication = Bool(self.synchronousReplication) + if self._is_empty(self.memorySize): + self.MissingRequiredField("memorySize") + if not isinstance(self.memorySize, MemorySize): + self.memorySize = MemorySize(**as_dict(self.memorySize)) - if self.consistencyType is not None and not isinstance(self.consistencyType, ConsistencyType): - self.consistencyType = ConsistencyType(self.consistencyType) + if self.memoryClass is not None and not isinstance(self.memoryClass, MemoryClasses): + self.memoryClass = MemoryClasses(self.memoryClass) - if not isinstance(self.replicaNumber, list): - self.replicaNumber = [self.replicaNumber] if self.replicaNumber is not None else [] - self.replicaNumber = [v if isinstance(v, int) else int(v) for v in self.replicaNumber] + if self.memoryRank is not None and not isinstance(self.memoryRank, MemoryRanks): + self.memoryRank = MemoryRanks(self.memoryRank) - if not isinstance(self.geoReplication, list): - self.geoReplication = [self.geoReplication] if self.geoReplication is not None else [] - self.geoReplication = [v if isinstance(v, GeoReplicationScope) else GeoReplicationScope(v) for v in self.geoReplication] + if self.eccEnabled is not None and not isinstance(self.eccEnabled, Bool): + self.eccEnabled = Bool(self.eccEnabled) + + if self.hardwareEncryption is not None and not isinstance(self.hardwareEncryption, Bool): + self.hardwareEncryption = Bool(self.hardwareEncryption) super().__post_init__(**kwargs) -@dataclass -class QoSMetric(YAMLRoot): +@dataclass(repr=False) +class Policy(YAMLRoot): """ - A quantity representing a performance level that is guaranteed to be met at least X% of the time. + ODRL Core Vocabulary Terms related to Policy """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["QoSMetric"] - class_class_curie: ClassVar[str] = "gx:QoSMetric" - class_name: ClassVar[str] = "QoSMetric" - class_model_uri: ClassVar[URIRef] = GX.QoSMetric + class_class_uri: ClassVar[URIRef] = ODRL["Policy"] + class_class_curie: ClassVar[str] = "odrl:Policy" + class_name: ClassVar[str] = "Policy" + class_model_uri: ClassVar[URIRef] = GX.Policy - metric: Union[dict, Quantity] = None - guaranteed: Optional[Union[dict, FloatPercentage]] = None + uid: Optional[str] = None + profile: Optional[str] = None + inheritFrom: Optional[str] = None + permission: Optional[Union[Union[dict, "Rule"], List[Union[dict, "Rule"]]]] = empty_list() + prohibition: Optional[Union[Union[dict, "Rule"], List[Union[dict, "Rule"]]]] = empty_list() + obligation: Optional[Union[Union[dict, "Rule"], List[Union[dict, "Rule"]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, Quantity): - self.metric = Quantity(**as_dict(self.metric)) + if self._is_empty(self.uid): + self.MissingRequiredField("uid") + if not isinstance(self.uid, str): + self.uid = str(self.uid) - if self.guaranteed is not None and not isinstance(self.guaranteed, FloatPercentage): - self.guaranteed = FloatPercentage(**as_dict(self.guaranteed)) + if self.uid is not None and not isinstance(self.uid, str): + self.uid = str(self.uid) + + if self.profile is not None and not isinstance(self.profile, str): + self.profile = str(self.profile) + + if self.inheritFrom is not None and not isinstance(self.inheritFrom, str): + self.inheritFrom = str(self.inheritFrom) + + self._normalize_inlined_as_dict(slot_name="permission", slot_type=Rule, key_name="action", keyed=False) + + self._normalize_inlined_as_dict(slot_name="prohibition", slot_type=Rule, key_name="action", keyed=False) + + self._normalize_inlined_as_dict(slot_name="obligation", slot_type=Rule, key_name="action", keyed=False) + + if self.profile is not None and not isinstance(self.profile, str): + self.profile = str(self.profile) + + self._normalize_inlined_as_dict(slot_name="permission", slot_type=Permission, key_name="action", keyed=False) + + self._normalize_inlined_as_dict(slot_name="prohibition", slot_type=Prohibition, key_name="action", keyed=False) + + self._normalize_inlined_as_dict(slot_name="obligation", slot_type=Duty, key_name="action", keyed=False) super().__post_init__(**kwargs) -@dataclass -class BandWidth(QoSMetric): +@dataclass(repr=False) +class Agreement(Policy): """ - Contractual bandwidth defined in the service level agreement (SLA). + ODRL Core Vocabulary Terms related to Policy Subclasses """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["BandWidth"] - class_class_curie: ClassVar[str] = "gx:BandWidth" - class_name: ClassVar[str] = "BandWidth" - class_model_uri: ClassVar[URIRef] = GX.BandWidth + class_class_uri: ClassVar[URIRef] = ODRL["Agreement"] + class_class_curie: ClassVar[str] = "odrl:Agreement" + class_name: ClassVar[str] = "Agreement" + class_model_uri: ClassVar[URIRef] = GX.Agreement - metric: Union[dict, DataRate] = None + uid: str = None + assignee: Union[dict, "Party"] = None + assigner: Union[dict, "Party"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, DataRate): - self.metric = DataRate(**as_dict(self.metric)) + if self._is_empty(self.assignee): + self.MissingRequiredField("assignee") + if not isinstance(self.assignee, Party): + self.assignee = Party(**as_dict(self.assignee)) + + if self._is_empty(self.assigner): + self.MissingRequiredField("assigner") + if not isinstance(self.assigner, Party): + self.assigner = Party(**as_dict(self.assigner)) super().__post_init__(**kwargs) -@dataclass -class RoundTripTime(QoSMetric): +@dataclass(repr=False) +class Offer(Policy): """ - Contractual roundTrip time defined in the SLA. If not specified, then best effort is assumed. + ODRL Core Vocabulary Terms related to Policy Subclasses """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["RoundTripTime"] - class_class_curie: ClassVar[str] = "gx:RoundTripTime" - class_name: ClassVar[str] = "RoundTripTime" - class_model_uri: ClassVar[URIRef] = GX.RoundTripTime + class_class_uri: ClassVar[URIRef] = ODRL["Offer"] + class_class_curie: ClassVar[str] = "odrl:Offer" + class_name: ClassVar[str] = "Offer" + class_model_uri: ClassVar[URIRef] = GX.Offer - metric: Union[dict, Time] = None + uid: str = None + assigner: Union[dict, "Party"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, Time): - self.metric = Time(**as_dict(self.metric)) + if self._is_empty(self.assigner): + self.MissingRequiredField("assigner") + if not isinstance(self.assigner, Party): + self.assigner = Party(**as_dict(self.assigner)) super().__post_init__(**kwargs) -@dataclass -class Availability(QoSMetric): +@dataclass(repr=False) +class Set(Policy): """ - Contractual availability of connection defined in the SLA agreement. Availability is measured in the pseudo-unit - "percent". + ODRL Core Vocabulary Terms related to Policy Subclasses """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Availability"] - class_class_curie: ClassVar[str] = "gx:Availability" - class_name: ClassVar[str] = "Availability" - class_model_uri: ClassVar[URIRef] = GX.Availability + class_class_uri: ClassVar[URIRef] = ODRL["Set"] + class_class_curie: ClassVar[str] = "odrl:Set" + class_name: ClassVar[str] = "Set" + class_model_uri: ClassVar[URIRef] = GX.Set + + uid: str = None + +@dataclass(repr=False) +class Rule(YAMLRoot): + """ + ODRL Core Vocabulary Terms related to Rule + """ + _inherited_slots: ClassVar[List[str]] = [] - metric: Union[dict, Time] = None + class_class_uri: ClassVar[URIRef] = ODRL["Rule"] + class_class_curie: ClassVar[str] = "odrl:Rule" + class_name: ClassVar[str] = "Rule" + class_model_uri: ClassVar[URIRef] = GX.Rule + + action: str = None + relation: Optional[str] = None + function: Optional[str] = None + failure: Optional[str] = None + assignee: Optional[Union[dict, "Party"]] = None + assigner: Optional[Union[dict, "Party"]] = None + constraint: Optional[Union[Union[dict, "Constraint"], List[Union[dict, "Constraint"]]]] = empty_list() + logicalConstraint: Optional[Union[Union[dict, "LogicalConstraint"], List[Union[dict, "LogicalConstraint"]]]] = empty_list() + duty: Optional[Union[Union[dict, "Duty"], List[Union[dict, "Duty"]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, Time): - self.metric = Time(**as_dict(self.metric)) + if self._is_empty(self.action): + self.MissingRequiredField("action") + if not isinstance(self.action, str): + self.action = str(self.action) + + if self.relation is not None and not isinstance(self.relation, str): + self.relation = str(self.relation) + + if self.function is not None and not isinstance(self.function, str): + self.function = str(self.function) + + if self.failure is not None and not isinstance(self.failure, str): + self.failure = str(self.failure) + + if self.assignee is not None and not isinstance(self.assignee, Party): + self.assignee = Party(**as_dict(self.assignee)) + + if self.assigner is not None and not isinstance(self.assigner, Party): + self.assigner = Party(**as_dict(self.assigner)) + + self._normalize_inlined_as_dict(slot_name="constraint", slot_type=Constraint, key_name="leftOperand", keyed=False) + + if not isinstance(self.logicalConstraint, list): + self.logicalConstraint = [self.logicalConstraint] if self.logicalConstraint is not None else [] + self.logicalConstraint = [v if isinstance(v, LogicalConstraint) else LogicalConstraint(**as_dict(v)) for v in self.logicalConstraint] + + self._normalize_inlined_as_dict(slot_name="duty", slot_type=Duty, key_name="action", keyed=False) super().__post_init__(**kwargs) -@dataclass -class PacketLoss(QoSMetric): +@dataclass(repr=False) +class ConflictTerm(YAMLRoot): """ - Contractual packet loss of connection defined in the SLA agreement. If not specified, then best effort is assumed. - packetLoss measured in the pseudo-unit "percent" + ODRL Core Vocabulary Terms related to Policy Conflict Strategy """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["PacketLoss"] - class_class_curie: ClassVar[str] = "gx:PacketLoss" - class_name: ClassVar[str] = "PacketLoss" - class_model_uri: ClassVar[URIRef] = GX.PacketLoss + class_class_uri: ClassVar[URIRef] = ODRL["ConflictTerm"] + class_class_curie: ClassVar[str] = "odrl:ConflictTerm" + class_name: ClassVar[str] = "ConflictTerm" + class_model_uri: ClassVar[URIRef] = GX.ConflictTerm - metric: Union[dict, FloatPercentage] = None + conflict: Optional[str] = None + perm: Optional[str] = None + prohibit: Optional[str] = None + invalid: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, FloatPercentage): - self.metric = FloatPercentage(**as_dict(self.metric)) + if self.conflict is not None and not isinstance(self.conflict, str): + self.conflict = str(self.conflict) + + if self.perm is not None and not isinstance(self.perm, str): + self.perm = str(self.perm) + + if self.prohibit is not None and not isinstance(self.prohibit, str): + self.prohibit = str(self.prohibit) + + if self.invalid is not None and not isinstance(self.invalid, str): + self.invalid = str(self.invalid) super().__post_init__(**kwargs) -@dataclass -class Jitter(QoSMetric): +@dataclass(repr=False) +class Asset(YAMLRoot): """ - Contractual jitter defined in the SLA. If not specified, then best effort is assumed. + ODRL Core Vocabulary Terms related to Assets """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Jitter"] - class_class_curie: ClassVar[str] = "gx:Jitter" - class_name: ClassVar[str] = "Jitter" - class_model_uri: ClassVar[URIRef] = GX.Jitter + class_class_uri: ClassVar[URIRef] = ODRL["Asset"] + class_class_curie: ClassVar[str] = "odrl:Asset" + class_name: ClassVar[str] = "Asset" + class_model_uri: ClassVar[URIRef] = GX.Asset - metric: Union[dict, Time] = None + uid: str = None + AssetCollection: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, Time): - self.metric = Time(**as_dict(self.metric)) + if self._is_empty(self.uid): + self.MissingRequiredField("uid") + if not isinstance(self.uid, str): + self.uid = str(self.uid) + + if self.AssetCollection is not None and not isinstance(self.AssetCollection, str): + self.AssetCollection = str(self.AssetCollection) super().__post_init__(**kwargs) -@dataclass -class Latency(QoSMetric): +@dataclass(repr=False) +class Party(YAMLRoot): """ - Contractual latency defined in the SLA. If not specified, then best effort is assumed. + ODRL Core Vocabulary Terms related to Parties """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Latency"] - class_class_curie: ClassVar[str] = "gx:Latency" - class_name: ClassVar[str] = "Latency" - class_model_uri: ClassVar[URIRef] = GX.Latency + class_class_uri: ClassVar[URIRef] = ODRL["Party"] + class_class_curie: ClassVar[str] = "odrl:Party" + class_name: ClassVar[str] = "Party" + class_model_uri: ClassVar[URIRef] = GX.Party - metric: Union[dict, Time] = None + uid: str = None + PartyCollection: Optional[str] = None + assignee: Optional[str] = None + assigner: Optional[str] = None + assignerOf: Optional[str] = None + assigneeOf: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, Time): - self.metric = Time(**as_dict(self.metric)) + if self._is_empty(self.uid): + self.MissingRequiredField("uid") + if not isinstance(self.uid, str): + self.uid = str(self.uid) + + if self.PartyCollection is not None and not isinstance(self.PartyCollection, str): + self.PartyCollection = str(self.PartyCollection) + + if self.assignee is not None and not isinstance(self.assignee, str): + self.assignee = str(self.assignee) + + if self.assigner is not None and not isinstance(self.assigner, str): + self.assigner = str(self.assigner) + + if self.assignerOf is not None and not isinstance(self.assignerOf, str): + self.assignerOf = str(self.assignerOf) + + if self.assigneeOf is not None and not isinstance(self.assigneeOf, str): + self.assigneeOf = str(self.assigneeOf) super().__post_init__(**kwargs) -@dataclass -class TargetPercentile(QoSMetric): +@dataclass(repr=False) +class Permission(Rule): """ - target percentile + ODRL Core Vocabulary Terms related to Permissions """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["TargetPercentile"] - class_class_curie: ClassVar[str] = "gx:TargetPercentile" - class_name: ClassVar[str] = "TargetPercentile" - class_model_uri: ClassVar[URIRef] = GX.TargetPercentile + class_class_uri: ClassVar[URIRef] = ODRL["Permission"] + class_class_curie: ClassVar[str] = "odrl:Permission" + class_name: ClassVar[str] = "Permission" + class_model_uri: ClassVar[URIRef] = GX.Permission - metric: Union[dict, FloatPercentage] = None + action: str = None + target: Union[str, List[str]] = None + permission: Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, FloatPercentage): - self.metric = FloatPercentage(**as_dict(self.metric)) + if self._is_empty(self.target): + self.MissingRequiredField("target") + if not isinstance(self.target, list): + self.target = [self.target] if self.target is not None else [] + self.target = [v if isinstance(v, str) else str(v) for v in self.target] + + self._normalize_inlined_as_dict(slot_name="permission", slot_type=Rule, key_name="action", keyed=False) super().__post_init__(**kwargs) -@dataclass -class Throughput(QoSMetric): +@dataclass(repr=False) +class Prohibition(Rule): """ - Metric for throughput. + ODRL Core Vocabulary Terms related to Prohibitions """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["Throughput"] - class_class_curie: ClassVar[str] = "gx:Throughput" - class_name: ClassVar[str] = "Throughput" - class_model_uri: ClassVar[URIRef] = GX.Throughput + class_class_uri: ClassVar[URIRef] = ODRL["Prohibition"] + class_class_curie: ClassVar[str] = "odrl:Prohibition" + class_name: ClassVar[str] = "Prohibition" + class_model_uri: ClassVar[URIRef] = GX.Prohibition - metric: Union[dict, DataRate] = None + action: str = None + target: Union[str, List[str]] = None + prohibition: Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, DataRate): - self.metric = DataRate(**as_dict(self.metric)) + if self._is_empty(self.target): + self.MissingRequiredField("target") + if not isinstance(self.target, list): + self.target = [self.target] if self.target is not None else [] + self.target = [v if isinstance(v, str) else str(v) for v in self.target] + + self._normalize_inlined_as_dict(slot_name="prohibition", slot_type=Rule, key_name="action", keyed=False) super().__post_init__(**kwargs) -@dataclass -class IOPS(QoSMetric): +@dataclass(repr=False) +class Duty(Rule): """ - Metric for IOps. + ODRL Core Vocabulary Terms related to Duties """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["IOPS"] - class_class_curie: ClassVar[str] = "gx:IOPS" - class_name: ClassVar[str] = "IOPS" - class_model_uri: ClassVar[URIRef] = GX.IOPS + class_class_uri: ClassVar[URIRef] = ODRL["Duty"] + class_class_curie: ClassVar[str] = "odrl:Duty" + class_name: ClassVar[str] = "Duty" + class_model_uri: ClassVar[URIRef] = GX.Duty - metric: Union[dict, DataRate] = None + action: str = None + obligation: Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]] = empty_list() + duty: Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]] = empty_list() + consequence: Optional[str] = None + remedy: Optional[str] = None + target: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.metric): - self.MissingRequiredField("metric") - if not isinstance(self.metric, DataRate): - self.metric = DataRate(**as_dict(self.metric)) + self._normalize_inlined_as_dict(slot_name="obligation", slot_type=Rule, key_name="action", keyed=False) + + self._normalize_inlined_as_dict(slot_name="duty", slot_type=Rule, key_name="action", keyed=False) + + if self.consequence is not None and not isinstance(self.consequence, str): + self.consequence = str(self.consequence) + + if self.remedy is not None and not isinstance(self.remedy, str): + self.remedy = str(self.remedy) + + if not isinstance(self.target, list): + self.target = [self.target] if self.target is not None else [] + self.target = [v if isinstance(v, str) else str(v) for v in self.target] super().__post_init__(**kwargs) -@dataclass -class QoS(YAMLRoot): +@dataclass(repr=False) +class Constraint(YAMLRoot): """ - Contractual performance values defined in the Service Level Agreement. + ODRL Core Vocabulary Terms related to Constraints """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["QoS"] - class_class_curie: ClassVar[str] = "gx:QoS" - class_name: ClassVar[str] = "QoS" - class_model_uri: ClassVar[URIRef] = GX.QoS + class_class_uri: ClassVar[URIRef] = ODRL["Constraint"] + class_class_curie: ClassVar[str] = "odrl:Constraint" + class_name: ClassVar[str] = "Constraint" + class_model_uri: ClassVar[URIRef] = GX.Constraint - throughput: Optional[Union[dict, Throughput]] = None - iops: Optional[Union[dict, IOPS]] = None - bandWidth: Optional[Union[dict, BandWidth]] = None - roundTripTime: Optional[Union[dict, RoundTripTime]] = None - availability: Optional[Union[dict, Availability]] = None - packetLoss: Optional[Union[dict, PacketLoss]] = None - jitter: Optional[Union[dict, Jitter]] = None - latency: Optional[Union[dict, Latency]] = None - targetPercentile: Optional[Union[dict, TargetPercentile]] = None + refinement: Optional[str] = None + operator: Optional[str] = None + rightOperand: Optional[str] = None + rightOperandReference: Optional[str] = None + leftOperand: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.throughput is not None and not isinstance(self.throughput, Throughput): - self.throughput = Throughput(**as_dict(self.throughput)) + if self._is_empty(self.leftOperand): + self.MissingRequiredField("leftOperand") + if not isinstance(self.leftOperand, str): + self.leftOperand = str(self.leftOperand) - if self.iops is not None and not isinstance(self.iops, IOPS): - self.iops = IOPS(**as_dict(self.iops)) - - if self.bandWidth is not None and not isinstance(self.bandWidth, BandWidth): - self.bandWidth = BandWidth(**as_dict(self.bandWidth)) - - if self.roundTripTime is not None and not isinstance(self.roundTripTime, RoundTripTime): - self.roundTripTime = RoundTripTime(**as_dict(self.roundTripTime)) + if self._is_empty(self.operator): + self.MissingRequiredField("operator") + if not isinstance(self.operator, str): + self.operator = str(self.operator) - if self.availability is not None and not isinstance(self.availability, Availability): - self.availability = Availability(**as_dict(self.availability)) + if self.refinement is not None and not isinstance(self.refinement, str): + self.refinement = str(self.refinement) - if self.packetLoss is not None and not isinstance(self.packetLoss, PacketLoss): - self.packetLoss = PacketLoss(**as_dict(self.packetLoss)) + if self.operator is not None and not isinstance(self.operator, str): + self.operator = str(self.operator) - if self.jitter is not None and not isinstance(self.jitter, Jitter): - self.jitter = Jitter(**as_dict(self.jitter)) + if self.rightOperand is not None and not isinstance(self.rightOperand, str): + self.rightOperand = str(self.rightOperand) - if self.latency is not None and not isinstance(self.latency, Latency): - self.latency = Latency(**as_dict(self.latency)) + if self.rightOperandReference is not None and not isinstance(self.rightOperandReference, str): + self.rightOperandReference = str(self.rightOperandReference) - if self.targetPercentile is not None and not isinstance(self.targetPercentile, TargetPercentile): - self.targetPercentile = TargetPercentile(**as_dict(self.targetPercentile)) + if self.leftOperand is not None and not isinstance(self.leftOperand, str): + self.leftOperand = str(self.leftOperand) super().__post_init__(**kwargs) -@dataclass -class StorageConfiguration(InstantiationRequirement): +@dataclass(repr=False) +class LogicalConstraint(YAMLRoot): """ - Represents the attributes that are configurable at service instantiation for storage service offerings. + ODRL Core Vocabulary Terms related to Logical Constraints """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["StorageConfiguration"] - class_class_curie: ClassVar[str] = "gx:StorageConfiguration" - class_name: ClassVar[str] = "StorageConfiguration" - class_model_uri: ClassVar[URIRef] = GX.StorageConfiguration + class_class_uri: ClassVar[URIRef] = ODRL["LogicalConstraint"] + class_class_curie: ClassVar[str] = "odrl:LogicalConstraint" + class_name: ClassVar[str] = "LogicalConstraint" + class_model_uri: ClassVar[URIRef] = GX.LogicalConstraint - storageEncryption: Union[Union[dict, Encryption], List[Union[dict, Encryption]]] = None - storageCompression: Optional[Union[Union[str, "CompressionAlgorithm"], List[Union[str, "CompressionAlgorithm"]]]] = empty_list() - storageDeduplication: Optional[Union[Union[str, "DeduplicationMethod"], List[Union[str, "DeduplicationMethod"]]]] = empty_list() - storageRedundancyMechanism: Optional[Union[Union[str, "StorageRedundancyMechanism"], List[Union[str, "StorageRedundancyMechanism"]]]] = empty_list() - storageProtection: Optional[Union[Union[dict, DataProtectionPolicy], List[Union[dict, DataProtectionPolicy]]]] = empty_list() - storageQoS: Optional[Union[Union[dict, QoS], List[Union[dict, QoS]]]] = empty_list() - blockSize: Optional[Union[Union[dict, MemorySize], List[Union[dict, MemorySize]]]] = empty_list() + operand: Optional[str] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.storageEncryption): - self.MissingRequiredField("storageEncryption") - #self._normalize_inlined_as_dict(slot_name="storageEncryption", slot_type=Encryption, key_name="cipher", keyed=False) + if self.operand is not None and not isinstance(self.operand, str): + self.operand = str(self.operand) - if not isinstance(self.storageCompression, list): - self.storageCompression = [self.storageCompression] if self.storageCompression is not None else [] - self.storageCompression = [v if isinstance(v, CompressionAlgorithm) else CompressionAlgorithm(v) for v in self.storageCompression] - - if not isinstance(self.storageDeduplication, list): - self.storageDeduplication = [self.storageDeduplication] if self.storageDeduplication is not None else [] - self.storageDeduplication = [v if isinstance(v, DeduplicationMethod) else DeduplicationMethod(v) for v in self.storageDeduplication] - - if not isinstance(self.storageRedundancyMechanism, list): - self.storageRedundancyMechanism = [self.storageRedundancyMechanism] if self.storageRedundancyMechanism is not None else [] - self.storageRedundancyMechanism = [v if isinstance(v, StorageRedundancyMechanism) else StorageRedundancyMechanism(v) for v in self.storageRedundancyMechanism] - - #self._normalize_inlined_as_dict(slot_name="storageProtection", slot_type=DataProtectionPolicy, key_name="protectionFrequency", keyed=False) - - if not isinstance(self.storageQoS, list): - self.storageQoS = [self.storageQoS] if self.storageQoS is not None else [] - self.storageQoS = [v if isinstance(v, QoS) else QoS(**as_dict(v)) for v in self.storageQoS] + super().__post_init__(**kwargs) - #self._normalize_inlined_as_dict(slot_name="blockSize", slot_type=MemorySize, key_name="value", keyed=False) +class Participant(GaiaXEntity): + """ + An legal or natural person that is onboarded to Gaia-X and offers, consumes services or operates resources. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["Participant"] + class_class_curie: ClassVar[str] = "gx:Participant" + class_name: ClassVar[str] = "Participant" + class_model_uri: ClassVar[URIRef] = GX.Participant -@dataclass -class FileStorageConfiguration(StorageConfiguration): +@dataclass(repr=False) +class LegalPerson(Participant): """ - Represents the attributes that are configurable at service instantiation for storage service offerings. + A legal person, who is uniquely identified by its registration number. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["FileStorageConfiguration"] - class_class_curie: ClassVar[str] = "gx:FileStorageConfiguration" - class_name: ClassVar[str] = "FileStorageConfiguration" - class_model_uri: ClassVar[URIRef] = GX.FileStorageConfiguration + class_class_uri: ClassVar[URIRef] = GX["LegalPerson"] + class_class_curie: ClassVar[str] = "gx:LegalPerson" + class_name: ClassVar[str] = "LegalPerson" + class_model_uri: ClassVar[URIRef] = GX.LegalPerson - storageEncryption: Union[Union[dict, Encryption], List[Union[dict, Encryption]]] = None - fileSystemType: Optional[Union[Union[str, "FileSystemType"], List[Union[str, "FileSystemType"]]]] = empty_list() - highLevelAccessProtocol: Optional[Union[Union[str, "FileAccessProtocol"], List[Union[str, "FileAccessProtocol"]]]] = empty_list() + registrationNumber: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None + legalAddress: Union[dict, Address] = None + headquartersAddress: Union[dict, Address] = None + parentOrganizationOf: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() + subOrganisationOf: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if not isinstance(self.fileSystemType, list): - self.fileSystemType = [self.fileSystemType] if self.fileSystemType is not None else [] - self.fileSystemType = [v if isinstance(v, FileSystemType) else FileSystemType(v) for v in self.fileSystemType] + if self._is_empty(self.registrationNumber): + self.MissingRequiredField("registrationNumber") + if not isinstance(self.registrationNumber, list): + self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] + self.registrationNumber = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.registrationNumber] - if not isinstance(self.highLevelAccessProtocol, list): - self.highLevelAccessProtocol = [self.highLevelAccessProtocol] if self.highLevelAccessProtocol is not None else [] - self.highLevelAccessProtocol = [v if isinstance(v, FileAccessProtocol) else FileAccessProtocol(v) for v in self.highLevelAccessProtocol] + if self._is_empty(self.legalAddress): + self.MissingRequiredField("legalAddress") + if not isinstance(self.legalAddress, Address): + self.legalAddress = Address(**as_dict(self.legalAddress)) + + if self._is_empty(self.headquartersAddress): + self.MissingRequiredField("headquartersAddress") + if not isinstance(self.headquartersAddress, Address): + self.headquartersAddress = Address(**as_dict(self.headquartersAddress)) + + if not isinstance(self.parentOrganizationOf, list): + self.parentOrganizationOf = [self.parentOrganizationOf] if self.parentOrganizationOf is not None else [] + self.parentOrganizationOf = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.parentOrganizationOf] + + if not isinstance(self.subOrganisationOf, list): + self.subOrganisationOf = [self.subOrganisationOf] if self.subOrganisationOf is not None else [] + self.subOrganisationOf = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.subOrganisationOf] super().__post_init__(**kwargs) -@dataclass -class BlockStorageConfiguration(StorageConfiguration): +@dataclass(repr=False) +class InternetServiceProvider(LegalPerson): """ - Represents the attributes that are configurable at service instantiation for storage service offerings. + Organization providing internet access and related services """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["BlockStorageConfiguration"] - class_class_curie: ClassVar[str] = "gx:BlockStorageConfiguration" - class_name: ClassVar[str] = "BlockStorageConfiguration" - class_model_uri: ClassVar[URIRef] = GX.BlockStorageConfiguration + class_class_uri: ClassVar[URIRef] = GX["InternetServiceProvider"] + class_class_curie: ClassVar[str] = "gx:InternetServiceProvider" + class_name: ClassVar[str] = "InternetServiceProvider" + class_model_uri: ClassVar[URIRef] = GX.InternetServiceProvider - storageEncryption: Union[Union[dict, Encryption], List[Union[dict, Encryption]]] = None - blockStorageTechnology: Optional[Union[Union[str, "BlockStorageTechnology"], List[Union[str, "BlockStorageTechnology"]]]] = empty_list() - lowLevelBlockAccessProtocol: Optional[Union[Union[str, "BlockAccessProtocol"], List[Union[str, "BlockAccessProtocol"]]]] = empty_list() + registrationNumber: Union[Union[str, InternetServiceProviderRegistrationNumber], List[Union[str, InternetServiceProviderRegistrationNumber]]] = None + legalAddress: Union[dict, Address] = None + headquartersAddress: Union[dict, Address] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if not isinstance(self.blockStorageTechnology, list): - self.blockStorageTechnology = [self.blockStorageTechnology] if self.blockStorageTechnology is not None else [] - self.blockStorageTechnology = [v if isinstance(v, BlockStorageTechnology) else BlockStorageTechnology(v) for v in self.blockStorageTechnology] - - if not isinstance(self.lowLevelBlockAccessProtocol, list): - self.lowLevelBlockAccessProtocol = [self.lowLevelBlockAccessProtocol] if self.lowLevelBlockAccessProtocol is not None else [] - self.lowLevelBlockAccessProtocol = [v if isinstance(v, BlockAccessProtocol) else BlockAccessProtocol(v) for v in self.lowLevelBlockAccessProtocol] + if self._is_empty(self.registrationNumber): + self.MissingRequiredField("registrationNumber") + if not isinstance(self.registrationNumber, list): + self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] + self.registrationNumber = [v if isinstance(v, InternetServiceProviderRegistrationNumber) else InternetServiceProviderRegistrationNumber(v) for v in self.registrationNumber] super().__post_init__(**kwargs) -@dataclass -class StorageServiceOffering(InfrastructureServiceOffering): +@dataclass(repr=False) +class DataProvider(LegalPerson): """ - A digital service available for order and offering storage capabilities. + is equivalent to Gaia-X Provider """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["StorageServiceOffering"] - class_class_curie: ClassVar[str] = "gx:StorageServiceOffering" - class_name: ClassVar[str] = "StorageServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.StorageServiceOffering + class_class_uri: ClassVar[URIRef] = GX["DataProvider"] + class_class_curie: ClassVar[str] = "gx:DataProvider" + class_name: ClassVar[str] = "DataProvider" + class_model_uri: ClassVar[URIRef] = GX.DataProvider - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - storageConfiguration: Union[dict, StorageConfiguration] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - minimumSize: Optional[Union[dict, MemorySize]] = None - maximumSize: Optional[Union[dict, MemorySize]] = None - lifetimeManagement: Optional[int] = None - versioning: Optional[Union[bool, Bool]] = None - storageConsistency: Optional[Union[str, "ConsistencyType"]] = None - dataViews: Optional[Union[bool, Bool]] = None - multipleViews: Optional[Union[bool, Bool]] = None + registrationNumber: Union[Union[str, DataProviderRegistrationNumber], List[Union[str, DataProviderRegistrationNumber]]] = None + legalAddress: Union[dict, Address] = None + headquartersAddress: Union[dict, Address] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.storageConfiguration): - self.MissingRequiredField("storageConfiguration") - if not isinstance(self.storageConfiguration, StorageConfiguration): - self.storageConfiguration = StorageConfiguration(**as_dict(self.storageConfiguration)) - - if self.minimumSize is not None and not isinstance(self.minimumSize, MemorySize): - self.minimumSize = MemorySize(**as_dict(self.minimumSize)) + if self._is_empty(self.registrationNumber): + self.MissingRequiredField("registrationNumber") + if not isinstance(self.registrationNumber, list): + self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] + self.registrationNumber = [v if isinstance(v, DataProviderRegistrationNumber) else DataProviderRegistrationNumber(v) for v in self.registrationNumber] - if self.maximumSize is not None and not isinstance(self.maximumSize, MemorySize): - self.maximumSize = MemorySize(**as_dict(self.maximumSize)) + super().__post_init__(**kwargs) - if self.lifetimeManagement is not None and not isinstance(self.lifetimeManagement, int): - self.lifetimeManagement = int(self.lifetimeManagement) - if self.versioning is not None and not isinstance(self.versioning, Bool): - self.versioning = Bool(self.versioning) +@dataclass(repr=False) +class DataLicensor(LegalPerson): + """ + is equivalent to Gaia-X Licensor + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.storageConsistency is not None and not isinstance(self.storageConsistency, ConsistencyType): - self.storageConsistency = ConsistencyType(self.storageConsistency) + class_class_uri: ClassVar[URIRef] = GX["DataLicensor"] + class_class_curie: ClassVar[str] = "gx:DataLicensor" + class_name: ClassVar[str] = "DataLicensor" + class_model_uri: ClassVar[URIRef] = GX.DataLicensor - if self.dataViews is not None and not isinstance(self.dataViews, Bool): - self.dataViews = Bool(self.dataViews) + registrationNumber: Union[Union[str, DataLicensorRegistrationNumber], List[Union[str, DataLicensorRegistrationNumber]]] = None + legalAddress: Union[dict, Address] = None + headquartersAddress: Union[dict, Address] = None - if self.multipleViews is not None and not isinstance(self.multipleViews, Bool): - self.multipleViews = Bool(self.multipleViews) + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.registrationNumber): + self.MissingRequiredField("registrationNumber") + if not isinstance(self.registrationNumber, list): + self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] + self.registrationNumber = [v if isinstance(v, DataLicensorRegistrationNumber) else DataLicensorRegistrationNumber(v) for v in self.registrationNumber] super().__post_init__(**kwargs) -@dataclass -class FileStorageServiceOffering(StorageServiceOffering): +@dataclass(repr=False) +class DataProducer(LegalPerson): """ - A digital service available for order and offering file storage capabilities. + is equivalent to Gaia-X ResourceOwner """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["FileStorageServiceOffering"] - class_class_curie: ClassVar[str] = "gx:FileStorageServiceOffering" - class_name: ClassVar[str] = "FileStorageServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.FileStorageServiceOffering + class_class_uri: ClassVar[URIRef] = GX["DataProducer"] + class_class_curie: ClassVar[str] = "gx:DataProducer" + class_name: ClassVar[str] = "DataProducer" + class_model_uri: ClassVar[URIRef] = GX.DataProducer - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - storageConfiguration: Union[dict, FileStorageConfiguration] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - accessSemantics: Optional[Union[bool, Bool]] = None - accessAttributes: Optional[Union[Union[str, "AccessAttribute"], List[Union[str, "AccessAttribute"]]]] = empty_list() + registrationNumber: Union[Union[str, DataProducerRegistrationNumber], List[Union[str, DataProducerRegistrationNumber]]] = None + legalAddress: Union[dict, Address] = None + headquartersAddress: Union[dict, Address] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.storageConfiguration): - self.MissingRequiredField("storageConfiguration") - if not isinstance(self.storageConfiguration, FileStorageConfiguration): - self.storageConfiguration = FileStorageConfiguration(**as_dict(self.storageConfiguration)) - - if self.accessSemantics is not None and not isinstance(self.accessSemantics, Bool): - self.accessSemantics = Bool(self.accessSemantics) - - if not isinstance(self.accessAttributes, list): - self.accessAttributes = [self.accessAttributes] if self.accessAttributes is not None else [] - self.accessAttributes = [v if isinstance(v, AccessAttribute) else AccessAttribute(v) for v in self.accessAttributes] + if self._is_empty(self.registrationNumber): + self.MissingRequiredField("registrationNumber") + if not isinstance(self.registrationNumber, list): + self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] + self.registrationNumber = [v if isinstance(v, DataProducerRegistrationNumber) else DataProducerRegistrationNumber(v) for v in self.registrationNumber] super().__post_init__(**kwargs) -@dataclass -class BlockStorageServiceOffering(StorageServiceOffering): +@dataclass(repr=False) +class DataConsumer(LegalPerson): """ - A digital service available for order and offering block storage capabilities. + is equivalent to Gaia-X Consumer """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["BlockStorageServiceOffering"] - class_class_curie: ClassVar[str] = "gx:BlockStorageServiceOffering" - class_name: ClassVar[str] = "BlockStorageServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.BlockStorageServiceOffering + class_class_uri: ClassVar[URIRef] = GX["DataConsumer"] + class_class_curie: ClassVar[str] = "gx:DataConsumer" + class_name: ClassVar[str] = "DataConsumer" + class_model_uri: ClassVar[URIRef] = GX.DataConsumer - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - storageConfiguration: Union[dict, BlockStorageConfiguration] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" + registrationNumber: Union[Union[str, DataConsumerRegistrationNumber], List[Union[str, DataConsumerRegistrationNumber]]] = None + legalAddress: Union[dict, Address] = None + headquartersAddress: Union[dict, Address] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.storageConfiguration): - self.MissingRequiredField("storageConfiguration") - if not isinstance(self.storageConfiguration, BlockStorageConfiguration): - self.storageConfiguration = BlockStorageConfiguration(**as_dict(self.storageConfiguration)) + if self._is_empty(self.registrationNumber): + self.MissingRequiredField("registrationNumber") + if not isinstance(self.registrationNumber, list): + self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] + self.registrationNumber = [v if isinstance(v, DataConsumerRegistrationNumber) else DataConsumerRegistrationNumber(v) for v in self.registrationNumber] super().__post_init__(**kwargs) -@dataclass -class ObjectStorageServiceOffering(StorageServiceOffering): +@dataclass(repr=False) +class Federator(LegalPerson): """ - A digital service available for order and offering object storage capabilities. + is equivalent to Gaia-X Federator """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ObjectStorageServiceOffering"] - class_class_curie: ClassVar[str] = "gx:ObjectStorageServiceOffering" - class_name: ClassVar[str] = "ObjectStorageServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.ObjectStorageServiceOffering + class_class_uri: ClassVar[URIRef] = GX["Federator"] + class_class_curie: ClassVar[str] = "gx:Federator" + class_name: ClassVar[str] = "Federator" + class_model_uri: ClassVar[URIRef] = GX.Federator - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - storageConfiguration: Union[dict, StorageConfiguration] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - accessAttributes: Optional[Union[Union[str, "AccessAttribute"], List[Union[str, "AccessAttribute"]]]] = empty_list() - maximumObjectSize: Optional[Union[dict, MemorySize]] = None - objectAPICompatibility: Optional[Union[Union[str, "StorageAPI"], List[Union[str, "StorageAPI"]]]] = empty_list() + registrationNumber: Union[Union[str, FederatorRegistrationNumber], List[Union[str, FederatorRegistrationNumber]]] = None + legalAddress: Union[dict, Address] = None + headquartersAddress: Union[dict, Address] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if not isinstance(self.accessAttributes, list): - self.accessAttributes = [self.accessAttributes] if self.accessAttributes is not None else [] - self.accessAttributes = [v if isinstance(v, AccessAttribute) else AccessAttribute(v) for v in self.accessAttributes] - - if self.maximumObjectSize is not None and not isinstance(self.maximumObjectSize, MemorySize): - self.maximumObjectSize = MemorySize(**as_dict(self.maximumObjectSize)) - - if not isinstance(self.objectAPICompatibility, list): - self.objectAPICompatibility = [self.objectAPICompatibility] if self.objectAPICompatibility is not None else [] - self.objectAPICompatibility = [v if isinstance(v, StorageAPI) else StorageAPI(v) for v in self.objectAPICompatibility] + if self._is_empty(self.registrationNumber): + self.MissingRequiredField("registrationNumber") + if not isinstance(self.registrationNumber, list): + self.registrationNumber = [self.registrationNumber] if self.registrationNumber is not None else [] + self.registrationNumber = [v if isinstance(v, FederatorRegistrationNumber) else FederatorRegistrationNumber(v) for v in self.registrationNumber] super().__post_init__(**kwargs) -@dataclass -class ConnectivityServiceOffering(InfrastructureServiceOffering): +@dataclass(repr=False) +class QoSMetric(YAMLRoot): """ - Connectivity Infrastructure services are made out of Physical, Link and Network services. Interconnection services - between providers exist as a subclass of Network services. + A quantity representing a performance level that is guaranteed to be met at least X% of the time. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ConnectivityServiceOffering"] - class_class_curie: ClassVar[str] = "gx:ConnectivityServiceOffering" - class_name: ClassVar[str] = "ConnectivityServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.ConnectivityServiceOffering + class_class_uri: ClassVar[URIRef] = GX["QoSMetric"] + class_class_curie: ClassVar[str] = "gx:QoSMetric" + class_name: ClassVar[str] = "QoSMetric" + class_model_uri: ClassVar[URIRef] = GX.QoSMetric - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - connectivityConfiguration: Union[Union[dict, "ConnectivityConfiguration"], List[Union[dict, "ConnectivityConfiguration"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - connectivityQoS: Optional[Union[dict, QoS]] = None + metric: str = None + guaranteed: Optional[Union[dict, "FloatPercentage"]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.connectivityConfiguration): - self.MissingRequiredField("connectivityConfiguration") - if not isinstance(self.connectivityConfiguration, list): - self.connectivityConfiguration = [self.connectivityConfiguration] if self.connectivityConfiguration is not None else [] - self.connectivityConfiguration = [v if isinstance(v, ConnectivityConfiguration) else ConnectivityConfiguration(**as_dict(v)) for v in self.connectivityConfiguration] + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, str): + self.metric = str(self.metric) - if self.connectivityQoS is not None and not isinstance(self.connectivityQoS, QoS): - self.connectivityQoS = QoS(**as_dict(self.connectivityQoS)) + if self.guaranteed is not None and not isinstance(self.guaranteed, FloatPercentage): + self.guaranteed = FloatPercentage(**as_dict(self.guaranteed)) super().__post_init__(**kwargs) -@dataclass -class NetworkConnectivityServiceOffering(ConnectivityServiceOffering): +@dataclass(repr=False) +class BandWidth(QoSMetric): """ - TBD + Contractual bandwidth defined in the service level agreement (SLA). """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["NetworkConnectivityServiceOffering"] - class_class_curie: ClassVar[str] = "gx:NetworkConnectivityServiceOffering" - class_name: ClassVar[str] = "NetworkConnectivityServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.NetworkConnectivityServiceOffering + class_class_uri: ClassVar[URIRef] = GX["BandWidth"] + class_class_curie: ClassVar[str] = "gx:BandWidth" + class_name: ClassVar[str] = "BandWidth" + class_model_uri: ClassVar[URIRef] = GX.BandWidth - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - connectivityConfiguration: Union[Union[dict, "ConnectivityConfiguration"], List[Union[dict, "ConnectivityConfiguration"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - serviceType: Optional[str] = None - publicIpAddressProvisioning: Optional[Union[str, "PublicIpAddressProvisioningTypes"]] = None - ipVersion: Optional[Union[str, "IpVersionTypes"]] = None - tenantSeparation: Optional[Union[str, "TenantSeparation"]] = None + metric: Union[dict, "DataRate"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.serviceType is not None and not isinstance(self.serviceType, str): - self.serviceType = str(self.serviceType) - - if self.publicIpAddressProvisioning is not None and not isinstance(self.publicIpAddressProvisioning, PublicIpAddressProvisioningTypes): - self.publicIpAddressProvisioning = PublicIpAddressProvisioningTypes(self.publicIpAddressProvisioning) - - if self.ipVersion is not None and not isinstance(self.ipVersion, IpVersionTypes): - self.ipVersion = IpVersionTypes(self.ipVersion) - - if self.tenantSeparation is not None and not isinstance(self.tenantSeparation, TenantSeparation): - self.tenantSeparation = TenantSeparation(self.tenantSeparation) + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, DataRate): + self.metric = DataRate(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class InterconnectionServiceOffering(NetworkConnectivityServiceOffering): +@dataclass(repr=False) +class RoundTripTime(QoSMetric): """ - TBD + Contractual roundTrip time defined in the SLA. If not specified, then best effort is assumed. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["InterconnectionServiceOffering"] - class_class_curie: ClassVar[str] = "gx:InterconnectionServiceOffering" - class_name: ClassVar[str] = "InterconnectionServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.InterconnectionServiceOffering + class_class_uri: ClassVar[URIRef] = GX["RoundTripTime"] + class_class_curie: ClassVar[str] = "gx:RoundTripTime" + class_name: ClassVar[str] = "RoundTripTime" + class_model_uri: ClassVar[URIRef] = GX.RoundTripTime - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - connectivityConfiguration: Union[Union[dict, "ConnectivityConfiguration"], List[Union[dict, "ConnectivityConfiguration"]]] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - connectedNetworkA: Optional[Union[int, List[int]]] = empty_list() - connectedNetworkZ: Optional[Union[int, List[int]]] = empty_list() - prefixSetA: Optional[Union[str, List[str]]] = empty_list() - prefixSetZ: Optional[Union[str, List[str]]] = empty_list() - vlanConfiguration: Optional[Union[dict, "VLANConfiguration"]] = None - connectionType: Optional[Union[str, List[str]]] = empty_list() - interfaceType: Optional[Union[str, List[str]]] = empty_list() + metric: Union[dict, "Time"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if not isinstance(self.connectedNetworkA, list): - self.connectedNetworkA = [self.connectedNetworkA] if self.connectedNetworkA is not None else [] - self.connectedNetworkA = [v if isinstance(v, int) else int(v) for v in self.connectedNetworkA] + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, Time): + self.metric = Time(**as_dict(self.metric)) - if not isinstance(self.connectedNetworkZ, list): - self.connectedNetworkZ = [self.connectedNetworkZ] if self.connectedNetworkZ is not None else [] - self.connectedNetworkZ = [v if isinstance(v, int) else int(v) for v in self.connectedNetworkZ] + super().__post_init__(**kwargs) - if not isinstance(self.prefixSetA, list): - self.prefixSetA = [self.prefixSetA] if self.prefixSetA is not None else [] - self.prefixSetA = [v if isinstance(v, str) else str(v) for v in self.prefixSetA] - if not isinstance(self.prefixSetZ, list): - self.prefixSetZ = [self.prefixSetZ] if self.prefixSetZ is not None else [] - self.prefixSetZ = [v if isinstance(v, str) else str(v) for v in self.prefixSetZ] +@dataclass(repr=False) +class Availability(QoSMetric): + """ + Contractual availability of connection defined in the SLA agreement. Availability is measured in the pseudo-unit + "percent". + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.vlanConfiguration is not None and not isinstance(self.vlanConfiguration, VLANConfiguration): - self.vlanConfiguration = VLANConfiguration(**as_dict(self.vlanConfiguration)) + class_class_uri: ClassVar[URIRef] = GX["Availability"] + class_class_curie: ClassVar[str] = "gx:Availability" + class_name: ClassVar[str] = "Availability" + class_model_uri: ClassVar[URIRef] = GX.Availability - if not isinstance(self.connectionType, list): - self.connectionType = [self.connectionType] if self.connectionType is not None else [] - self.connectionType = [v if isinstance(v, str) else str(v) for v in self.connectionType] + metric: Union[dict, "Time"] = None - if not isinstance(self.interfaceType, list): - self.interfaceType = [self.interfaceType] if self.interfaceType is not None else [] - self.interfaceType = [v if isinstance(v, str) else str(v) for v in self.interfaceType] + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, Time): + self.metric = Time(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class LinkConnectivityServiceOffering(ConnectivityServiceOffering): +@dataclass(repr=False) +class PacketLoss(QoSMetric): """ - TBD + Contractual packet loss of connection defined in the SLA agreement. If not specified, then best effort is assumed. + packetLoss measured in the pseudo-unit "percent" """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["LinkConnectivityServiceOffering"] - class_class_curie: ClassVar[str] = "gx:LinkConnectivityServiceOffering" - class_name: ClassVar[str] = "LinkConnectivityServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.LinkConnectivityServiceOffering + class_class_uri: ClassVar[URIRef] = GX["PacketLoss"] + class_class_curie: ClassVar[str] = "gx:PacketLoss" + class_name: ClassVar[str] = "PacketLoss" + class_model_uri: ClassVar[URIRef] = GX.PacketLoss - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - connectivityConfiguration: Union[Union[dict, "ConnectivityConfiguration"], List[Union[dict, "ConnectivityConfiguration"]]] = None - protocolType: Union[str, "ProtocolType"] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - vlanConfiguration: Optional[Union[dict, "VLANConfiguration"]] = None + metric: Union[dict, "FloatPercentage"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.protocolType): - self.MissingRequiredField("protocolType") - if not isinstance(self.protocolType, ProtocolType): - self.protocolType = ProtocolType(self.protocolType) - - if self.vlanConfiguration is not None and not isinstance(self.vlanConfiguration, VLANConfiguration): - self.vlanConfiguration = VLANConfiguration(**as_dict(self.vlanConfiguration)) + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, FloatPercentage): + self.metric = FloatPercentage(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class PhysicalConnectivityServiceOffering(ConnectivityServiceOffering): +@dataclass(repr=False) +class Jitter(QoSMetric): """ - TBD + Contractual jitter defined in the SLA. If not specified, then best effort is assumed. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["PhysicalConnectivityServiceOffering"] - class_class_curie: ClassVar[str] = "gx:PhysicalConnectivityServiceOffering" - class_name: ClassVar[str] = "PhysicalConnectivityServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.PhysicalConnectivityServiceOffering + class_class_uri: ClassVar[URIRef] = GX["Jitter"] + class_class_curie: ClassVar[str] = "gx:Jitter" + class_name: ClassVar[str] = "Jitter" + class_model_uri: ClassVar[URIRef] = GX.Jitter - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - connectivityConfiguration: Union[Union[dict, "ConnectivityConfiguration"], List[Union[dict, "ConnectivityConfiguration"]]] = None - circuitType: str = None - interfaceType: str = None - servicePolicy: Union[str, List[str]] = "default:allow intent" + metric: Union[dict, "Time"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.circuitType): - self.MissingRequiredField("circuitType") - if not isinstance(self.circuitType, str): - self.circuitType = str(self.circuitType) - - if self._is_empty(self.interfaceType): - self.MissingRequiredField("interfaceType") - if not isinstance(self.interfaceType, str): - self.interfaceType = str(self.interfaceType) + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, Time): + self.metric = Time(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class ConnectivityConfiguration(InstantiationRequirement): +@dataclass(repr=False) +class Latency(QoSMetric): """ - The connectivityConfiguration class encapsulates the configurable attributes of a ConnectivityServiceOffering. + Contractual latency defined in the SLA. If not specified, then best effort is assumed. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ConnectivityConfiguration"] - class_class_curie: ClassVar[str] = "gx:ConnectivityConfiguration" - class_name: ClassVar[str] = "ConnectivityConfiguration" - class_model_uri: ClassVar[URIRef] = GX.ConnectivityConfiguration + class_class_uri: ClassVar[URIRef] = GX["Latency"] + class_class_curie: ClassVar[str] = "gx:Latency" + class_name: ClassVar[str] = "Latency" + class_model_uri: ClassVar[URIRef] = GX.Latency - sourceIdentifierA: Optional[str] = None - destinationIdentifierZ: Optional[str] = None + metric: Union[dict, "Time"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.sourceIdentifierA is not None and not isinstance(self.sourceIdentifierA, str): - self.sourceIdentifierA = str(self.sourceIdentifierA) - - if self.destinationIdentifierZ is not None and not isinstance(self.destinationIdentifierZ, str): - self.destinationIdentifierZ = str(self.destinationIdentifierZ) + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, Time): + self.metric = Time(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class PhysicalInterconnectionPointIdentifier(PhysicalResource): +@dataclass(repr=False) +class TargetPercentile(QoSMetric): """ - TBD + Contractual percentile in the SLA. Usually referred to the number of frames the SLA metrics such as availability, + latency and jitter can be guaranteed. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["PhysicalInterconnectionPointIdentifier"] - class_class_curie: ClassVar[str] = "gx:PhysicalInterconnectionPointIdentifier" - class_name: ClassVar[str] = "PhysicalInterconnectionPointIdentifier" - class_model_uri: ClassVar[URIRef] = GX.PhysicalInterconnectionPointIdentifier + class_class_uri: ClassVar[URIRef] = GX["TargetPercentile"] + class_class_curie: ClassVar[str] = "gx:TargetPercentile" + class_name: ClassVar[str] = "TargetPercentile" + class_model_uri: ClassVar[URIRef] = GX.TargetPercentile - maintainedBy: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None - location: Union[Union[dict, Address], List[Union[dict, Address]]] = None - interconnectionPointIdentifier: Union[str, InterconnectionPointIdentifierCompleteIPI] = None + metric: Union[dict, "FloatPercentage"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.interconnectionPointIdentifier): - self.MissingRequiredField("interconnectionPointIdentifier") - if not isinstance(self.interconnectionPointIdentifier, InterconnectionPointIdentifierCompleteIPI): - self.interconnectionPointIdentifier = InterconnectionPointIdentifierCompleteIPI(self.interconnectionPointIdentifier) + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, FloatPercentage): + self.metric = FloatPercentage(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class VirtualInterconnectionPointIdentifier(VirtualResource): +@dataclass(repr=False) +class Throughput(QoSMetric): """ - TBD + Metric for throughput. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["VirtualInterconnectionPointIdentifier"] - class_class_curie: ClassVar[str] = "gx:VirtualInterconnectionPointIdentifier" - class_name: ClassVar[str] = "VirtualInterconnectionPointIdentifier" - class_model_uri: ClassVar[URIRef] = GX.VirtualInterconnectionPointIdentifier + class_class_uri: ClassVar[URIRef] = GX["Throughput"] + class_class_curie: ClassVar[str] = "gx:Throughput" + class_name: ClassVar[str] = "Throughput" + class_model_uri: ClassVar[URIRef] = GX.Throughput - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - interconnectionPointIdentifier: Union[str, InterconnectionPointIdentifierCompleteIPI] = None + metric: Union[dict, "DataRate"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.interconnectionPointIdentifier): - self.MissingRequiredField("interconnectionPointIdentifier") - if not isinstance(self.interconnectionPointIdentifier, InterconnectionPointIdentifierCompleteIPI): - self.interconnectionPointIdentifier = InterconnectionPointIdentifierCompleteIPI(self.interconnectionPointIdentifier) + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, DataRate): + self.metric = DataRate(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class InterconnectionPointIdentifier(YAMLRoot): +@dataclass(repr=False) +class IOPS(QoSMetric): """ - Interconnection Point Identifier is a unique Service Access Point that identifies the location where resources can - interconnect. + Metric for IOps. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["InterconnectionPointIdentifier"] - class_class_curie: ClassVar[str] = "gx:InterconnectionPointIdentifier" - class_name: ClassVar[str] = "InterconnectionPointIdentifier" - class_model_uri: ClassVar[URIRef] = GX.InterconnectionPointIdentifier + class_class_uri: ClassVar[URIRef] = GX["IOPS"] + class_class_curie: ClassVar[str] = "gx:IOPS" + class_name: ClassVar[str] = "IOPS" + class_model_uri: ClassVar[URIRef] = GX.IOPS - completeIPI: Union[str, InterconnectionPointIdentifierCompleteIPI] = None - ipiType: Optional[Union[str, "IPIType"]] = "Other" - ipiProvider: Optional[str] = None - specificParameters: Optional[str] = None - datacenterAllocation: Optional[Union[dict, "DatacenterAllocation"]] = None - macAddress: Optional[str] = None - ipAddress: Optional[str] = None + metric: Union[dict, "DataRate"] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.completeIPI): - self.MissingRequiredField("completeIPI") - if not isinstance(self.completeIPI, InterconnectionPointIdentifierCompleteIPI): - self.completeIPI = InterconnectionPointIdentifierCompleteIPI(self.completeIPI) - - if self.ipiType is not None and not isinstance(self.ipiType, IPIType): - self.ipiType = IPIType(self.ipiType) - - if self.ipiProvider is not None and not isinstance(self.ipiProvider, str): - self.ipiProvider = str(self.ipiProvider) - - if self.specificParameters is not None and not isinstance(self.specificParameters, str): - self.specificParameters = str(self.specificParameters) - - if self.datacenterAllocation is not None and not isinstance(self.datacenterAllocation, DatacenterAllocation): - self.datacenterAllocation = DatacenterAllocation(**as_dict(self.datacenterAllocation)) - - if self.macAddress is not None and not isinstance(self.macAddress, str): - self.macAddress = str(self.macAddress) - - if self.ipAddress is not None and not isinstance(self.ipAddress, str): - self.ipAddress = str(self.ipAddress) + if self._is_empty(self.metric): + self.MissingRequiredField("metric") + if not isinstance(self.metric, DataRate): + self.metric = DataRate(**as_dict(self.metric)) super().__post_init__(**kwargs) -@dataclass -class DatacenterAllocation(YAMLRoot): +@dataclass(repr=False) +class QoS(YAMLRoot): """ - Details specific situation within the datacenter where the service can be accessed. + Contractual performance values defined in the Service Level Agreement. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["DatacenterAllocation"] - class_class_curie: ClassVar[str] = "gx:DatacenterAllocation" - class_name: ClassVar[str] = "DatacenterAllocation" - class_model_uri: ClassVar[URIRef] = GX.DatacenterAllocation + class_class_uri: ClassVar[URIRef] = GX["QoS"] + class_class_curie: ClassVar[str] = "gx:QoS" + class_name: ClassVar[str] = "QoS" + class_model_uri: ClassVar[URIRef] = GX.QoS - refersTo: Union[dict, Datacenter] = None - floor: Optional[str] = None - rackNumber: Optional[str] = None - patchPanel: Optional[str] = None - portNumber: Optional[int] = None + throughput: Optional[Union[dict, Throughput]] = None + iops: Optional[Union[dict, IOPS]] = None + bandWidth: Optional[Union[dict, BandWidth]] = None + roundTripTime: Optional[Union[dict, RoundTripTime]] = None + availability: Optional[Union[dict, Availability]] = None + packetLoss: Optional[Union[dict, PacketLoss]] = None + jitter: Optional[Union[dict, Jitter]] = None + latency: Optional[Union[dict, Latency]] = None + targetPercentile: Optional[Union[dict, TargetPercentile]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.refersTo): - self.MissingRequiredField("refersTo") - if not isinstance(self.refersTo, Datacenter): - self.refersTo = Datacenter(**as_dict(self.refersTo)) + if self.throughput is not None and not isinstance(self.throughput, Throughput): + self.throughput = Throughput(**as_dict(self.throughput)) - if self.floor is not None and not isinstance(self.floor, str): - self.floor = str(self.floor) + if self.iops is not None and not isinstance(self.iops, IOPS): + self.iops = IOPS(**as_dict(self.iops)) - if self.rackNumber is not None and not isinstance(self.rackNumber, str): - self.rackNumber = str(self.rackNumber) + if self.bandWidth is not None and not isinstance(self.bandWidth, BandWidth): + self.bandWidth = BandWidth(**as_dict(self.bandWidth)) - if self.patchPanel is not None and not isinstance(self.patchPanel, str): - self.patchPanel = str(self.patchPanel) + if self.roundTripTime is not None and not isinstance(self.roundTripTime, RoundTripTime): + self.roundTripTime = RoundTripTime(**as_dict(self.roundTripTime)) - if self.portNumber is not None and not isinstance(self.portNumber, int): - self.portNumber = int(self.portNumber) + if self.availability is not None and not isinstance(self.availability, Availability): + self.availability = Availability(**as_dict(self.availability)) + + if self.packetLoss is not None and not isinstance(self.packetLoss, PacketLoss): + self.packetLoss = PacketLoss(**as_dict(self.packetLoss)) + + if self.jitter is not None and not isinstance(self.jitter, Jitter): + self.jitter = Jitter(**as_dict(self.jitter)) + + if self.latency is not None and not isinstance(self.latency, Latency): + self.latency = Latency(**as_dict(self.latency)) + + if self.targetPercentile is not None and not isinstance(self.targetPercentile, TargetPercentile): + self.targetPercentile = TargetPercentile(**as_dict(self.targetPercentile)) super().__post_init__(**kwargs) -@dataclass -class VLANConfiguration(YAMLRoot): +@dataclass(repr=False) +class QuantityKind(YAMLRoot): """ - TDB + Abstract parent class for all physical quantities kinds, such as frequency, power or length. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["VLANConfiguration"] - class_class_curie: ClassVar[str] = "gx:VLANConfiguration" - class_name: ClassVar[str] = "VLANConfiguration" - class_model_uri: ClassVar[URIRef] = GX.VLANConfiguration + class_class_uri: ClassVar[URIRef] = QUDT["QuantityKind"] + class_class_curie: ClassVar[str] = "qudt:QuantityKind" + class_name: ClassVar[str] = "QuantityKind" + class_model_uri: ClassVar[URIRef] = GX.QuantityKind - vlanType: Optional[Union[str, "VlanType"]] = None - vlanTag: Optional[int] = None - vlanEtherType: Optional[str] = None + value: float = None + unit: str = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.vlanType is not None and not isinstance(self.vlanType, VlanType): - self.vlanType = VlanType(self.vlanType) - - if self.vlanTag is not None and not isinstance(self.vlanTag, int): - self.vlanTag = int(self.vlanTag) + if self._is_empty(self.value): + self.MissingRequiredField("value") + if not isinstance(self.value, float): + self.value = float(self.value) - if self.vlanEtherType is not None and not isinstance(self.vlanEtherType, str): - self.vlanEtherType = str(self.vlanEtherType) + if self._is_empty(self.unit): + self.MissingRequiredField("unit") + if not isinstance(self.unit, str): + self.unit = str(self.unit) super().__post_init__(**kwargs) -@dataclass -class ComputeFunctionConfiguration(InstantiationRequirement): - """ - InstantiationRequirements for compute functions. - """ +class RdfsDatatype(YAMLRoot): _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionConfiguration"] - class_class_curie: ClassVar[str] = "gx:ComputeFunctionConfiguration" - class_name: ClassVar[str] = "ComputeFunctionConfiguration" - class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionConfiguration - - computeFunctionRuntime: Union[Union[dict, "ComputeFunctionRuntime"], List[Union[dict, "ComputeFunctionRuntime"]]] = None - computeFunctionQuotas: Optional[Union[Union[dict, "ComputeFunctionQuotas"], List[Union[dict, "ComputeFunctionQuotas"]]]] = empty_list() - computeFunctionLibrary: Optional[Union[Union[dict, "ComputeFunctionTemplate"], List[Union[dict, "ComputeFunctionTemplate"]]]] = empty_list() - computeFunctionSDK: Optional[Union[Union[dict, "ComputeFunctionRuntime"], List[Union[dict, "ComputeFunctionRuntime"]]]] = empty_list() - computeFunctionTrigger: Optional[Union[Union[dict, "ComputeFunctionTrigger"], List[Union[dict, "ComputeFunctionTrigger"]]]] = empty_list() - computeFunctionDeploymentMethod: Optional[Union[Union[str, "ComputeFunctionDeploymentMethod"], List[Union[str, "ComputeFunctionDeploymentMethod"]]]] = empty_list() - confidentialComputingTechnology: Optional[Union[dict, "ConfidentialComputing"]] = None - - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.computeFunctionRuntime): - self.MissingRequiredField("computeFunctionRuntime") - #self._normalize_inlined_as_dict(slot_name="computeFunctionRuntime", slot_type=ComputeFunctionRuntime, key_name="supportedLanguage", keyed=False) - - if not isinstance(self.computeFunctionQuotas, list): - self.computeFunctionQuotas = [self.computeFunctionQuotas] if self.computeFunctionQuotas is not None else [] - self.computeFunctionQuotas = [v if isinstance(v, ComputeFunctionQuotas) else ComputeFunctionQuotas(**as_dict(v)) for v in self.computeFunctionQuotas] + class_class_uri: ClassVar[URIRef] = RDFS["Datatype"] + class_class_curie: ClassVar[str] = "rdfs:Datatype" + class_name: ClassVar[str] = "RdfsDatatype" + class_model_uri: ClassVar[URIRef] = GX.RdfsDatatype - #self._normalize_inlined_as_dict(slot_name="computeFunctionLibrary", slot_type=ComputeFunctionTemplate, key_name="copyrightOwnedBy", keyed=False) - #self._normalize_inlined_as_dict(slot_name="computeFunctionSDK", slot_type=ComputeFunctionRuntime, key_name="supportedLanguage", keyed=False) +@dataclass(repr=False) +class Frequency(QuantityKind): + """ + Definition of 'Frequency', according to http://qudt.org/quantitykind/FrequencyDefinition. + """ + _inherited_slots: ClassVar[List[str]] = [] - if not isinstance(self.computeFunctionTrigger, list): - self.computeFunctionTrigger = [self.computeFunctionTrigger] if self.computeFunctionTrigger is not None else [] - self.computeFunctionTrigger = [v if isinstance(v, ComputeFunctionTrigger) else ComputeFunctionTrigger(**as_dict(v)) for v in self.computeFunctionTrigger] + class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/FrequencyDefinition"] + class_class_curie: ClassVar[str] = "qudt:quantitykind/FrequencyDefinition" + class_name: ClassVar[str] = "Frequency" + class_model_uri: ClassVar[URIRef] = GX.Frequency - if not isinstance(self.computeFunctionDeploymentMethod, list): - self.computeFunctionDeploymentMethod = [self.computeFunctionDeploymentMethod] if self.computeFunctionDeploymentMethod is not None else [] - self.computeFunctionDeploymentMethod = [v if isinstance(v, ComputeFunctionDeploymentMethod) else ComputeFunctionDeploymentMethod(v) for v in self.computeFunctionDeploymentMethod] + value: float = None + unit: str = None - if self.confidentialComputingTechnology is not None and not isinstance(self.confidentialComputingTechnology, ConfidentialComputing): - self.confidentialComputingTechnology = ConfidentialComputing(**as_dict(self.confidentialComputingTechnology)) +@dataclass(repr=False) +class MemorySize(QuantityKind): + """ + The number of bytes, that can be stored on a digital storage. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["MemorySize"] + class_class_curie: ClassVar[str] = "gx:MemorySize" + class_name: ClassVar[str] = "MemorySize" + class_model_uri: ClassVar[URIRef] = GX.MemorySize + value: float = None + unit: str = None -@dataclass -class ComputeFunctionQuotas(YAMLRoot): +@dataclass(repr=False) +class Power(QuantityKind): """ - Attributes describing quotas for compute functions + Definition of 'Power', according to http://qudt.org/quantitykind/Power. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionQuotas"] - class_class_curie: ClassVar[str] = "gx:ComputeFunctionQuotas" - class_name: ClassVar[str] = "ComputeFunctionQuotas" - class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionQuotas - - functionMaximumNumber: Optional[int] = None - functionStorageLimit: Optional[Union[dict, MemorySize]] = None - functionTimeLimit: Optional[Union[dict, Time]] = None - functionMemoryLimit: Optional[Union[dict, MemorySize]] = None - functionSizeLimit: Optional[Union[dict, MemorySize]] = None - functionConcurrencyLimit: Optional[int] = None - functionRequestSizeLimit: Optional[Union[dict, MemorySize]] = None - functionResponseSizeLimit: Optional[Union[dict, MemorySize]] = None + class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/Power"] + class_class_curie: ClassVar[str] = "qudt:quantitykind/Power" + class_name: ClassVar[str] = "Power" + class_model_uri: ClassVar[URIRef] = GX.Power - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.functionMaximumNumber is not None and not isinstance(self.functionMaximumNumber, int): - self.functionMaximumNumber = int(self.functionMaximumNumber) + value: float = None + unit: str = None - if self.functionStorageLimit is not None and not isinstance(self.functionStorageLimit, MemorySize): - self.functionStorageLimit = MemorySize(**as_dict(self.functionStorageLimit)) +@dataclass(repr=False) +class DataRate(QuantityKind): + """ + Definition of 'Data Rate', according to http://qudt.org/quantitykind/DataRate. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.functionTimeLimit is not None and not isinstance(self.functionTimeLimit, Time): - self.functionTimeLimit = Time(**as_dict(self.functionTimeLimit)) + class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/DataRate"] + class_class_curie: ClassVar[str] = "qudt:quantitykind/DataRate" + class_name: ClassVar[str] = "DataRate" + class_model_uri: ClassVar[URIRef] = GX.DataRate - if self.functionMemoryLimit is not None and not isinstance(self.functionMemoryLimit, MemorySize): - self.functionMemoryLimit = MemorySize(**as_dict(self.functionMemoryLimit)) + value: float = None + unit: str = None - if self.functionSizeLimit is not None and not isinstance(self.functionSizeLimit, MemorySize): - self.functionSizeLimit = MemorySize(**as_dict(self.functionSizeLimit)) +@dataclass(repr=False) +class Time(QuantityKind): + """ + Definition of 'Time', according to http://qudt.org/quantitykind/Time. + """ + _inherited_slots: ClassVar[List[str]] = [] - if self.functionConcurrencyLimit is not None and not isinstance(self.functionConcurrencyLimit, int): - self.functionConcurrencyLimit = int(self.functionConcurrencyLimit) + class_class_uri: ClassVar[URIRef] = QUDT["quantitykind/Time"] + class_class_curie: ClassVar[str] = "qudt:quantitykind/Time" + class_name: ClassVar[str] = "Time" + class_model_uri: ClassVar[URIRef] = GX.Time - if self.functionRequestSizeLimit is not None and not isinstance(self.functionRequestSizeLimit, MemorySize): - self.functionRequestSizeLimit = MemorySize(**as_dict(self.functionRequestSizeLimit)) + value: float = None + unit: str = None - if self.functionResponseSizeLimit is not None and not isinstance(self.functionResponseSizeLimit, MemorySize): - self.functionResponseSizeLimit = MemorySize(**as_dict(self.functionResponseSizeLimit)) +@dataclass(repr=False) +class RetentionDuration(Time): + """ + Sub-class of Time with units relevant for retention durations. + """ + _inherited_slots: ClassVar[List[str]] = [] - super().__post_init__(**kwargs) + class_class_uri: ClassVar[URIRef] = GX["RetentionDuration"] + class_class_curie: ClassVar[str] = "gx:RetentionDuration" + class_name: ClassVar[str] = "RetentionDuration" + class_model_uri: ClassVar[URIRef] = GX.RetentionDuration + value: float = None + unit: str = None -@dataclass -class ComputeFunctionRuntime(YAMLRoot): +@dataclass(repr=False) +class FloatPercentage(RdfsDatatype): """ - Attributes describing function runtimes + Definition of percentage, according to https://qudt.org/2.1/schema/qudt """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionRuntime"] - class_class_curie: ClassVar[str] = "gx:ComputeFunctionRuntime" - class_name: ClassVar[str] = "ComputeFunctionRuntime" - class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionRuntime + class_class_uri: ClassVar[URIRef] = QUDT_SCHEMA["floatPercentage"] + class_class_curie: ClassVar[str] = "qudt-schema:floatPercentage" + class_name: ClassVar[str] = "FloatPercentage" + class_model_uri: ClassVar[URIRef] = GX.FloatPercentage - supportedLanguage: Union[str, "ComputeFunctionLanguage"] = None - supportedVersion: Union[str, List[str]] = None + value: Optional[float] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.supportedLanguage): - self.MissingRequiredField("supportedLanguage") - if not isinstance(self.supportedLanguage, ComputeFunctionLanguage): - self.supportedLanguage = ComputeFunctionLanguage(self.supportedLanguage) - - if self._is_empty(self.supportedVersion): - self.MissingRequiredField("supportedVersion") - if not isinstance(self.supportedVersion, list): - self.supportedVersion = [self.supportedVersion] if self.supportedVersion is not None else [] - self.supportedVersion = [v if isinstance(v, str) else str(v) for v in self.supportedVersion] + if self.value is not None and not isinstance(self.value, float): + self.value = float(self.value) super().__post_init__(**kwargs) -@dataclass -class ComputeFunctionTrigger(YAMLRoot): +@dataclass(repr=False) +class Resource(GaiaXEntity): """ - Attributes describing Compute Function Trigger + Description of a good or object of the Gaia-X Ecosystem, and may be aggregated in a Service Offering or exist + independently of it. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionTrigger"] - class_class_curie: ClassVar[str] = "gx:ComputeFunctionTrigger" - class_name: ClassVar[str] = "ComputeFunctionTrigger" - class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionTrigger + class_class_uri: ClassVar[URIRef] = GX["Resource"] + class_class_curie: ClassVar[str] = "gx:Resource" + class_name: ClassVar[str] = "Resource" + class_model_uri: ClassVar[URIRef] = GX.Resource - triggeringService: Optional[Union[dict, ServiceOffering]] = None - triggeringEvent: Optional[Union[str, List[str]]] = empty_list() + aggregationOfResources: Optional[Union[str, List[str]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.triggeringService is not None and not isinstance(self.triggeringService, ServiceOffering): - self.triggeringService = ServiceOffering(**as_dict(self.triggeringService)) - - if not isinstance(self.triggeringEvent, list): - self.triggeringEvent = [self.triggeringEvent] if self.triggeringEvent is not None else [] - self.triggeringEvent = [v if isinstance(v, str) else str(v) for v in self.triggeringEvent] + if not isinstance(self.aggregationOfResources, list): + self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] + self.aggregationOfResources = [v if isinstance(v, str) else str(v) for v in self.aggregationOfResources] super().__post_init__(**kwargs) -@dataclass -class ComputeFunctionTemplate(CodeArtifact): +@dataclass(repr=False) +class AvailabilityZone(Resource): """ - Class for describing a template of compute function + An availability zone is an aggregation of resources - physical and abstract - in a non-redundant setup often + associated with a single datacenter room """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionTemplate"] - class_class_curie: ClassVar[str] = "gx:ComputeFunctionTemplate" - class_name: ClassVar[str] = "ComputeFunctionTemplate" - class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionTemplate + class_class_uri: ClassVar[URIRef] = GX["AvailabilityZone"] + class_class_curie: ClassVar[str] = "gx:AvailabilityZone" + class_name: ClassVar[str] = "AvailabilityZone" + class_model_uri: ClassVar[URIRef] = GX.AvailabilityZone - copyrightOwnedBy: Union[str, List[str]] = None - license: Union[str, List[str]] = None - resourcePolicy: Union[str, List[str]] = None - computeFunctionName: str = None - computeFunctionDescription: str = None - computeFunctionTemplateRuntime: Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]] = None + address: Optional[Union[dict, Address]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.computeFunctionName): - self.MissingRequiredField("computeFunctionName") - if not isinstance(self.computeFunctionName, str): - self.computeFunctionName = str(self.computeFunctionName) - - if self._is_empty(self.computeFunctionDescription): - self.MissingRequiredField("computeFunctionDescription") - if not isinstance(self.computeFunctionDescription, str): - self.computeFunctionDescription = str(self.computeFunctionDescription) - - if self._is_empty(self.computeFunctionTemplateRuntime): - self.MissingRequiredField("computeFunctionTemplateRuntime") - #self._normalize_inlined_as_dict(slot_name="computeFunctionTemplateRuntime", slot_type=ComputeFunctionRuntime, key_name="supportedLanguage", keyed=False) + if self.address is not None and not isinstance(self.address, Address): + self.address = Address(**as_dict(self.address)) super().__post_init__(**kwargs) -@dataclass -class ComputeFunctionServiceOffering(ComputeServiceOffering): +@dataclass(repr=False) +class Region(Resource): """ - A digital service available for order and providing compute functions capabilities. + A region is an aggregation of datacenters. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionServiceOffering"] - class_class_curie: ClassVar[str] = "gx:ComputeFunctionServiceOffering" - class_name: ClassVar[str] = "ComputeFunctionServiceOffering" - class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionServiceOffering + class_class_uri: ClassVar[URIRef] = GX["Region"] + class_class_curie: ClassVar[str] = "gx:Region" + class_name: ClassVar[str] = "Region" + class_model_uri: ClassVar[URIRef] = GX.Region - providedBy: Union[str, LegalPersonRegistrationNumber] = None - serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None - dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - computeFunctionConfiguration: Union[dict, ComputeFunctionConfiguration] = None - servicePolicy: Union[str, List[str]] = "default:allow intent" - computeFunctionDebugTools: Optional[Union[bool, Bool]] = None - computeFunctionEditor: Optional[Union[bool, Bool]] = None - computeFunctionAllowQuota: Optional[Union[bool, Bool]] = None - computeFunctionAllowTimeout: Optional[Union[bool, Bool]] = None - computeFunctionAllowVersioning: Optional[Union[bool, Bool]] = None - computeFunctionAllowAutoScaling: Optional[Union[bool, Bool]] = None - computeFunctionAllowFSMount: Optional[Union[bool, Bool]] = None + aggregationOfResources: Union[str, List[str]] = None + address: Optional[Union[dict, Address]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.computeFunctionConfiguration): - self.MissingRequiredField("computeFunctionConfiguration") - if not isinstance(self.computeFunctionConfiguration, ComputeFunctionConfiguration): - self.computeFunctionConfiguration = ComputeFunctionConfiguration(**as_dict(self.computeFunctionConfiguration)) - - if self.computeFunctionDebugTools is not None and not isinstance(self.computeFunctionDebugTools, Bool): - self.computeFunctionDebugTools = Bool(self.computeFunctionDebugTools) - - if self.computeFunctionEditor is not None and not isinstance(self.computeFunctionEditor, Bool): - self.computeFunctionEditor = Bool(self.computeFunctionEditor) - - if self.computeFunctionAllowQuota is not None and not isinstance(self.computeFunctionAllowQuota, Bool): - self.computeFunctionAllowQuota = Bool(self.computeFunctionAllowQuota) - - if self.computeFunctionAllowTimeout is not None and not isinstance(self.computeFunctionAllowTimeout, Bool): - self.computeFunctionAllowTimeout = Bool(self.computeFunctionAllowTimeout) - - if self.computeFunctionAllowVersioning is not None and not isinstance(self.computeFunctionAllowVersioning, Bool): - self.computeFunctionAllowVersioning = Bool(self.computeFunctionAllowVersioning) - - if self.computeFunctionAllowAutoScaling is not None and not isinstance(self.computeFunctionAllowAutoScaling, Bool): - self.computeFunctionAllowAutoScaling = Bool(self.computeFunctionAllowAutoScaling) + if self._is_empty(self.aggregationOfResources): + self.MissingRequiredField("aggregationOfResources") + if not isinstance(self.aggregationOfResources, list): + self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] + self.aggregationOfResources = [v if isinstance(v, str) else str(v) for v in self.aggregationOfResources] - if self.computeFunctionAllowFSMount is not None and not isinstance(self.computeFunctionAllowFSMount, Bool): - self.computeFunctionAllowFSMount = Bool(self.computeFunctionAllowFSMount) + if self.address is not None and not isinstance(self.address, Address): + self.address = Address(**as_dict(self.address)) super().__post_init__(**kwargs) -@dataclass -class VMImage(Image): +@dataclass(repr=False) +class VirtualResource(Resource): """ - Image for virtual machines. + It represents static data in any form and necessary information such as dataset, configuration file, license, + keypair, an AI model, neural network weights, etc. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["VMImage"] - class_class_curie: ClassVar[str] = "gx:VMImage" - class_name: ClassVar[str] = "VM_Image" - class_model_uri: ClassVar[URIRef] = GX.VMImage + class_class_uri: ClassVar[URIRef] = GX["VirtualResource"] + class_class_curie: ClassVar[str] = "gx:VirtualResource" + class_name: ClassVar[str] = "VirtualResource" + class_model_uri: ClassVar[URIRef] = GX.VirtualResource copyrightOwnedBy: Union[str, List[str]] = None license: Union[str, List[str]] = None resourcePolicy: Union[str, List[str]] = None - vmImageDiskFormat: Optional[Union[str, "VMDiskType"]] = "RAW" - hypervisorType: Optional[Union[str, "HypervisorType"]] = "other" - firmwareType: Optional[Union[str, "FirmType"]] = "other" - hwRngTypeOfImage: Optional[Union[str, "RNGTypes"]] = "None" - watchDogAction: Optional[Union[str, "WatchDogActions"]] = "disabled" def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.vmImageDiskFormat is not None and not isinstance(self.vmImageDiskFormat, VMDiskType): - self.vmImageDiskFormat = VMDiskType(self.vmImageDiskFormat) + if self._is_empty(self.copyrightOwnedBy): + self.MissingRequiredField("copyrightOwnedBy") + if not isinstance(self.copyrightOwnedBy, list): + self.copyrightOwnedBy = [self.copyrightOwnedBy] if self.copyrightOwnedBy is not None else [] + self.copyrightOwnedBy = [v if isinstance(v, str) else str(v) for v in self.copyrightOwnedBy] - if self.hypervisorType is not None and not isinstance(self.hypervisorType, HypervisorType): - self.hypervisorType = HypervisorType(self.hypervisorType) + if self._is_empty(self.license): + self.MissingRequiredField("license") + if not isinstance(self.license, list): + self.license = [self.license] if self.license is not None else [] + self.license = [v if isinstance(v, str) else str(v) for v in self.license] - if self.firmwareType is not None and not isinstance(self.firmwareType, FirmType): - self.firmwareType = FirmType(self.firmwareType) + if self._is_empty(self.resourcePolicy): + self.MissingRequiredField("resourcePolicy") + if not isinstance(self.resourcePolicy, list): + self.resourcePolicy = [self.resourcePolicy] if self.resourcePolicy is not None else [] + self.resourcePolicy = [v if isinstance(v, str) else str(v) for v in self.resourcePolicy] - if self.hwRngTypeOfImage is not None and not isinstance(self.hwRngTypeOfImage, RNGTypes): - self.hwRngTypeOfImage = RNGTypes(self.hwRngTypeOfImage) + super().__post_init__(**kwargs) - if self.watchDogAction is not None and not isinstance(self.watchDogAction, WatchDogActions): - self.watchDogAction = WatchDogActions(self.watchDogAction) + +@dataclass(repr=False) +class VirtualInterconnectionPointIdentifier(VirtualResource): + """ + TBD + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["VirtualInterconnectionPointIdentifier"] + class_class_curie: ClassVar[str] = "gx:VirtualInterconnectionPointIdentifier" + class_name: ClassVar[str] = "VirtualInterconnectionPointIdentifier" + class_model_uri: ClassVar[URIRef] = GX.VirtualInterconnectionPointIdentifier + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + participants: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None + interconnectionPointIdentifier: Union[str, InterconnectionPointIdentifierCompleteIPI] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.participants): + self.MissingRequiredField("participants") + if not isinstance(self.participants, list): + self.participants = [self.participants] if self.participants is not None else [] + self.participants = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.participants] + + if self._is_empty(self.interconnectionPointIdentifier): + self.MissingRequiredField("interconnectionPointIdentifier") + if not isinstance(self.interconnectionPointIdentifier, InterconnectionPointIdentifierCompleteIPI): + self.interconnectionPointIdentifier = InterconnectionPointIdentifierCompleteIPI(self.interconnectionPointIdentifier) super().__post_init__(**kwargs) -@dataclass -class ServerFlavor(InstantiationRequirement): +@dataclass(repr=False) +class DataResource(VirtualResource): """ - Description of the available hardware configuration, such as processor, ram and disk capacities, of a physical or - virtual servers that can be launched. + A dataset exposed through a service instance. """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ServerFlavor"] - class_class_curie: ClassVar[str] = "gx:ServerFlavor" - class_name: ClassVar[str] = "ServerFlavor" - class_model_uri: ClassVar[URIRef] = GX.ServerFlavor + class_class_uri: ClassVar[URIRef] = GX["DataResource"] + class_class_curie: ClassVar[str] = "gx:DataResource" + class_name: ClassVar[str] = "DataResource" + class_model_uri: ClassVar[URIRef] = GX.DataResource - cpu: Union[dict, CPU] = None - ram: Union[dict, Memory] = None - bootVolume: Union[dict, Disk] = None - gpu: Optional[Union[dict, GPU]] = None - network: Optional[str] = None - additionalVolume: Optional[Union[Union[dict, Disk], List[Union[dict, Disk]]]] = empty_list() - confidentialComputing: Optional[Union[dict, "ConfidentialComputing"]] = None - hypervisor: Optional[Union[dict, Hypervisor]] = None - hardwareAssistedVirtualization: Optional[Union[bool, Bool]] = False - hwRngTypeOfFlavor: Optional[Union[str, "RNGTypes"]] = "None" + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + producedBy: Union[str, LegalPersonRegistrationNumber] = None + exposedThrough: Union[Union[dict, DataExchangeComponent], List[Union[dict, DataExchangeComponent]]] = None + containsPII: Union[bool, Bool] = None + obsoleteDateTime: Optional[Union[str, XSDDateTime]] = None + expirationDateTime: Optional[Union[str, XSDDateTime]] = None + dataController: Optional[Union[Union[dict, Participant], List[Union[dict, Participant]]]] = empty_list() + consent: Optional[Union[Union[dict, Consent], List[Union[dict, Consent]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.cpu): - self.MissingRequiredField("cpu") - if not isinstance(self.cpu, CPU): - self.cpu = CPU(**as_dict(self.cpu)) + if self._is_empty(self.producedBy): + self.MissingRequiredField("producedBy") + if not isinstance(self.producedBy, LegalPersonRegistrationNumber): + self.producedBy = LegalPersonRegistrationNumber(self.producedBy) - if self._is_empty(self.ram): - self.MissingRequiredField("ram") - if not isinstance(self.ram, Memory): - self.ram = Memory(**as_dict(self.ram)) + if self._is_empty(self.exposedThrough): + self.MissingRequiredField("exposedThrough") + if not isinstance(self.exposedThrough, list): + self.exposedThrough = [self.exposedThrough] if self.exposedThrough is not None else [] + self.exposedThrough = [v if isinstance(v, DataExchangeComponent) else DataExchangeComponent(**as_dict(v)) for v in self.exposedThrough] - if self._is_empty(self.bootVolume): - self.MissingRequiredField("bootVolume") - if not isinstance(self.bootVolume, Disk): - self.bootVolume = Disk(**as_dict(self.bootVolume)) + if self._is_empty(self.containsPII): + self.MissingRequiredField("containsPII") + if not isinstance(self.containsPII, Bool): + self.containsPII = Bool(self.containsPII) - if self.gpu is not None and not isinstance(self.gpu, GPU): - self.gpu = GPU(**as_dict(self.gpu)) + if self.obsoleteDateTime is not None and not isinstance(self.obsoleteDateTime, XSDDateTime): + self.obsoleteDateTime = XSDDateTime(self.obsoleteDateTime) - if self.network is not None and not isinstance(self.network, str): - self.network = str(self.network) + if self.expirationDateTime is not None and not isinstance(self.expirationDateTime, XSDDateTime): + self.expirationDateTime = XSDDateTime(self.expirationDateTime) - #self._normalize_inlined_as_dict(slot_name="additionalVolume", slot_type=Disk, key_name="diskSize", keyed=False) + if not isinstance(self.dataController, list): + self.dataController = [self.dataController] if self.dataController is not None else [] + self.dataController = [v if isinstance(v, Participant) else Participant(**as_dict(v)) for v in self.dataController] - if self.confidentialComputing is not None and not isinstance(self.confidentialComputing, ConfidentialComputing): - self.confidentialComputing = ConfidentialComputing(**as_dict(self.confidentialComputing)) + self._normalize_inlined_as_dict(slot_name="consent", slot_type=Consent, key_name="legalBasis", keyed=False) - if self.hypervisor is not None and not isinstance(self.hypervisor, Hypervisor): - self.hypervisor = Hypervisor(**as_dict(self.hypervisor)) + super().__post_init__(**kwargs) - if self.hardwareAssistedVirtualization is not None and not isinstance(self.hardwareAssistedVirtualization, Bool): - self.hardwareAssistedVirtualization = Bool(self.hardwareAssistedVirtualization) - if self.hwRngTypeOfFlavor is not None and not isinstance(self.hwRngTypeOfFlavor, RNGTypes): - self.hwRngTypeOfFlavor = RNGTypes(self.hwRngTypeOfFlavor) +@dataclass(repr=False) +class PhysicalResource(Resource): + """ + A Physical resource is, but not limited to, a datacenter, a bare-metal service, a warehouse, a plant. Those are + entities that have a weight and position in physical space. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["PhysicalResource"] + class_class_curie: ClassVar[str] = "gx:PhysicalResource" + class_name: ClassVar[str] = "PhysicalResource" + class_model_uri: ClassVar[URIRef] = GX.PhysicalResource + + maintainedBy: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None + location: Union[Union[dict, Address], List[Union[dict, Address]]] = None + aggregationOfResources: Optional[Union[str, List[str]]] = empty_list() + ownedBy: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() + manufacturedBy: Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]] = empty_list() + energyUsageEfficiency: Optional[Union[dict, EnergyUsageEfficiency]] = None + waterUsageEffectiveness: Optional[Union[dict, "WaterUsageEffectiveness"]] = None + energyMix: Optional[Union[Union[dict, EnergyMix], List[Union[dict, EnergyMix]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.maintainedBy): + self.MissingRequiredField("maintainedBy") + if not isinstance(self.maintainedBy, list): + self.maintainedBy = [self.maintainedBy] if self.maintainedBy is not None else [] + self.maintainedBy = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.maintainedBy] + + if self._is_empty(self.location): + self.MissingRequiredField("location") + self._normalize_inlined_as_dict(slot_name="location", slot_type=Address, key_name="countryCode", keyed=False) + + if not isinstance(self.aggregationOfResources, list): + self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] + self.aggregationOfResources = [v if isinstance(v, str) else str(v) for v in self.aggregationOfResources] + + if not isinstance(self.ownedBy, list): + self.ownedBy = [self.ownedBy] if self.ownedBy is not None else [] + self.ownedBy = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.ownedBy] + + if not isinstance(self.manufacturedBy, list): + self.manufacturedBy = [self.manufacturedBy] if self.manufacturedBy is not None else [] + self.manufacturedBy = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.manufacturedBy] + + if self.energyUsageEfficiency is not None and not isinstance(self.energyUsageEfficiency, EnergyUsageEfficiency): + self.energyUsageEfficiency = EnergyUsageEfficiency(**as_dict(self.energyUsageEfficiency)) + + if self.waterUsageEffectiveness is not None and not isinstance(self.waterUsageEffectiveness, WaterUsageEffectiveness): + self.waterUsageEffectiveness = WaterUsageEffectiveness(**as_dict(self.waterUsageEffectiveness)) + + self._normalize_inlined_as_dict(slot_name="energyMix", slot_type=EnergyMix, key_name="date", keyed=False) super().__post_init__(**kwargs) -@dataclass -class ConfidentialComputing(YAMLRoot): +@dataclass(repr=False) +class PointOfPresence(PhysicalResource): + """ + Point of connection between separate communicating entities + """ _inherited_slots: ClassVar[List[str]] = [] - class_class_uri: ClassVar[URIRef] = GX["ConfidentialComputing"] - class_class_curie: ClassVar[str] = "gx:ConfidentialComputing" - class_name: ClassVar[str] = "ConfidentialComputing" - class_model_uri: ClassVar[URIRef] = GX.ConfidentialComputing + class_class_uri: ClassVar[URIRef] = GX["PointOfPresence"] + class_class_curie: ClassVar[str] = "gx:PointOfPresence" + class_name: ClassVar[str] = "PointOfPresence" + class_model_uri: ClassVar[URIRef] = GX.PointOfPresence - technology: str = None - attestationServiceURI: Optional[Union[str, URI]] = None + location: Union[Union[dict, Address], List[Union[dict, Address]]] = None + participants: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None + interconnectionPointIdentifier: Union[str, InterconnectionPointIdentifierCompleteIPI] = None + maintainedBy: Union[Union[str, InternetServiceProviderRegistrationNumber], List[Union[str, InternetServiceProviderRegistrationNumber]]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self._is_empty(self.technology): - self.MissingRequiredField("technology") - if not isinstance(self.technology, str): - self.technology = str(self.technology) + if self._is_empty(self.participants): + self.MissingRequiredField("participants") + if not isinstance(self.participants, list): + self.participants = [self.participants] if self.participants is not None else [] + self.participants = [v if isinstance(v, LegalPersonRegistrationNumber) else LegalPersonRegistrationNumber(v) for v in self.participants] - if self.attestationServiceURI is not None and not isinstance(self.attestationServiceURI, URI): - self.attestationServiceURI = URI(self.attestationServiceURI) + if self._is_empty(self.interconnectionPointIdentifier): + self.MissingRequiredField("interconnectionPointIdentifier") + if not isinstance(self.interconnectionPointIdentifier, InterconnectionPointIdentifierCompleteIPI): + self.interconnectionPointIdentifier = InterconnectionPointIdentifierCompleteIPI(self.interconnectionPointIdentifier) + + if self._is_empty(self.maintainedBy): + self.MissingRequiredField("maintainedBy") + if not isinstance(self.maintainedBy, list): + self.maintainedBy = [self.maintainedBy] if self.maintainedBy is not None else [] + self.maintainedBy = [v if isinstance(v, InternetServiceProviderRegistrationNumber) else InternetServiceProviderRegistrationNumber(v) for v in self.maintainedBy] super().__post_init__(**kwargs) -# Enumerations -class CountryNameAlpha2(EnumDefinitionImpl): +@dataclass(repr=False) +class PhysicalInterconnectionPointIdentifier(PointOfPresence): + """ + TBD + """ + _inherited_slots: ClassVar[List[str]] = [] - AF = PermissibleValue( - text="AF", - description="Alpha2 code for Afghanistan.") - EG = PermissibleValue( - text="EG", - description="Alpha2 code for Egypt.") - AX = PermissibleValue( - text="AX", - description="Alpha2 code for Aland Islands.") - AL = PermissibleValue( - text="AL", - description="Alpha2 code for Albania.") - DZ = PermissibleValue( - text="DZ", - description="Alpha2 code for Algeria.") - VI = PermissibleValue( - text="VI", - description="Alpha2 code for Virgin Islands (U.S.).") - UM = PermissibleValue( - text="UM", - description="Alpha2 code for United States Minor Outlying Islands (the).") - AS = PermissibleValue( - text="AS", - description="Alpha2 code for American Samoa.") - AD = PermissibleValue( - text="AD", - description="Alpha2 code for Andorra.") - AO = PermissibleValue( - text="AO", - description="Alpha2 code for Angola.") - AI = PermissibleValue( - text="AI", - description="Alpha2 code for Anguilla.") - AQ = PermissibleValue( - text="AQ", - description="Alpha2 code for Antarctica.") - AG = PermissibleValue( - text="AG", - description="Alpha2 code for Antigua and Barbuda.") - GQ = PermissibleValue( - text="GQ", - description="Alpha2 code for Equatorial Guinea.") - SY = PermissibleValue( - text="SY", - description="Alpha2 code for Syrian Arab Republic.") - AR = PermissibleValue( - text="AR", - description="Alpha2 code for Argentina.") - AM = PermissibleValue( - text="AM", - description="Alpha2 code for Armenia.") - AW = PermissibleValue( - text="AW", - description="Alpha2 code for Aruba.") - AZ = PermissibleValue( - text="AZ", - description="Alpha2 code for Azerbaijan.") - ET = PermissibleValue( - text="ET", - description="Alpha2 code for Ethiopia.") - AU = PermissibleValue( - text="AU", - description="Alpha2 code for Australia.") - BS = PermissibleValue( - text="BS", + class_class_uri: ClassVar[URIRef] = GX["PhysicalInterconnectionPointIdentifier"] + class_class_curie: ClassVar[str] = "gx:PhysicalInterconnectionPointIdentifier" + class_name: ClassVar[str] = "PhysicalInterconnectionPointIdentifier" + class_model_uri: ClassVar[URIRef] = GX.PhysicalInterconnectionPointIdentifier + + location: Union[Union[dict, Address], List[Union[dict, Address]]] = None + participants: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None + interconnectionPointIdentifier: Union[str, InterconnectionPointIdentifierCompleteIPI] = None + maintainedBy: Union[Union[str, InternetServiceProviderRegistrationNumber], List[Union[str, InternetServiceProviderRegistrationNumber]]] = None + +@dataclass(repr=False) +class InternetExchangePoint(PhysicalInterconnectionPointIdentifier): + """ + Physical infrastructure allowing participants to interconnect their networks hence avoiding the use of an upstream + provider networks. IXPs are usually non-profit as the interconnected participants agree to share free transit. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["InternetExchangePoint"] + class_class_curie: ClassVar[str] = "gx:InternetExchangePoint" + class_name: ClassVar[str] = "InternetExchangePoint" + class_model_uri: ClassVar[URIRef] = GX.InternetExchangePoint + + location: Union[Union[dict, Address], List[Union[dict, Address]]] = None + interconnectionPointIdentifier: Union[str, InterconnectionPointIdentifierCompleteIPI] = None + maintainedBy: Union[Union[str, InternetServiceProviderRegistrationNumber], List[Union[str, InternetServiceProviderRegistrationNumber]]] = None + participants: Union[Union[str, InternetServiceProviderRegistrationNumber], List[Union[str, InternetServiceProviderRegistrationNumber]]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.participants): + self.MissingRequiredField("participants") + if not isinstance(self.participants, list): + self.participants = [self.participants] if self.participants is not None else [] + self.participants = [v if isinstance(v, InternetServiceProviderRegistrationNumber) else InternetServiceProviderRegistrationNumber(v) for v in self.participants] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class Datacenter(PhysicalResource): + """ + A datacenter is an aggregation of availability zones + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["Datacenter"] + class_class_curie: ClassVar[str] = "gx:Datacenter" + class_name: ClassVar[str] = "Datacenter" + class_model_uri: ClassVar[URIRef] = GX.Datacenter + + maintainedBy: Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]] = None + location: Union[Union[dict, Address], List[Union[dict, Address]]] = None + aggregationOfResources: Union[str, List[str]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.aggregationOfResources): + self.MissingRequiredField("aggregationOfResources") + if not isinstance(self.aggregationOfResources, list): + self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] + self.aggregationOfResources = [v if isinstance(v, str) else str(v) for v in self.aggregationOfResources] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class SoftwareResource(VirtualResource): + """ + A Gaia-X Virtual Resource describing an executable program. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["SoftwareResource"] + class_class_curie: ClassVar[str] = "gx:SoftwareResource" + class_name: ClassVar[str] = "SoftwareResource" + class_model_uri: ClassVar[URIRef] = GX.SoftwareResource + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + checkSum: Optional[Union[dict, CheckSum]] = None + signature: Optional[Union[dict, Signature]] = None + version: Optional[str] = None + patchLevel: Optional[str] = None + buildDate: Optional[Union[str, XSDDateTime]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.checkSum is not None and not isinstance(self.checkSum, CheckSum): + self.checkSum = CheckSum(**as_dict(self.checkSum)) + + if self.signature is not None and not isinstance(self.signature, Signature): + self.signature = Signature(**as_dict(self.signature)) + + if self.version is not None and not isinstance(self.version, str): + self.version = str(self.version) + + if self.patchLevel is not None and not isinstance(self.patchLevel, str): + self.patchLevel = str(self.patchLevel) + + if self.buildDate is not None and not isinstance(self.buildDate, XSDDateTime): + self.buildDate = XSDDateTime(self.buildDate) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class CodeArtifact(SoftwareResource): + """ + A piece of software that can be executed by a Compute service. It is a subclass of SoftwareResource. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["CodeArtifact"] + class_class_curie: ClassVar[str] = "gx:CodeArtifact" + class_name: ClassVar[str] = "CodeArtifact" + class_model_uri: ClassVar[URIRef] = GX.CodeArtifact + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + +@dataclass(repr=False) +class ComputeFunctionTemplate(CodeArtifact): + """ + Class for describing a template of compute function + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionTemplate"] + class_class_curie: ClassVar[str] = "gx:ComputeFunctionTemplate" + class_name: ClassVar[str] = "ComputeFunctionTemplate" + class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionTemplate + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + computeFunctionName: str = None + computeFunctionDescription: str = None + computeFunctionTemplateRuntime: Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.computeFunctionName): + self.MissingRequiredField("computeFunctionName") + if not isinstance(self.computeFunctionName, str): + self.computeFunctionName = str(self.computeFunctionName) + + if self._is_empty(self.computeFunctionDescription): + self.MissingRequiredField("computeFunctionDescription") + if not isinstance(self.computeFunctionDescription, str): + self.computeFunctionDescription = str(self.computeFunctionDescription) + + if self._is_empty(self.computeFunctionTemplateRuntime): + self.MissingRequiredField("computeFunctionTemplateRuntime") + self._normalize_inlined_as_dict(slot_name="computeFunctionTemplateRuntime", slot_type=ComputeFunctionRuntime, key_name="supportedLanguage", keyed=False) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class Image(CodeArtifact): + """ + A software piece that can be executed by a virtual or bare metal Compute services. It is a subclass of + OperatingSystem and CodeArtifact. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["Image"] + class_class_curie: ClassVar[str] = "gx:Image" + class_name: ClassVar[str] = "Image" + class_model_uri: ClassVar[URIRef] = GX.Image + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + fileSize: Optional[Union[dict, MemorySize]] = None + operatingSystem: Optional[Union[dict, "OperatingSystem"]] = None + cpuReq: Optional[Union[dict, CPU]] = None + gpuReq: Optional[Union[dict, GPU]] = None + ramReq: Optional[Union[dict, Memory]] = None + videoRamSize: Optional[Union[dict, MemorySize]] = None + rootDiskReq: Optional[Union[dict, Disk]] = None + encryption: Optional[Union[dict, Encryption]] = None + secureBoot: Optional[Union[bool, Bool]] = False + vPMU: Optional[Union[bool, Bool]] = False + multiQueues: Optional[Union[bool, Bool]] = False + updateStrategy: Optional[Union[dict, UpdateStrategy]] = None + licenseIncluded: Optional[Union[bool, Bool]] = False + maintenance: Optional[Union[dict, MaintenanceSubscription]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.fileSize is not None and not isinstance(self.fileSize, MemorySize): + self.fileSize = MemorySize(**as_dict(self.fileSize)) + + if self.operatingSystem is not None and not isinstance(self.operatingSystem, OperatingSystem): + self.operatingSystem = OperatingSystem(**as_dict(self.operatingSystem)) + + if self.cpuReq is not None and not isinstance(self.cpuReq, CPU): + self.cpuReq = CPU(**as_dict(self.cpuReq)) + + if self.gpuReq is not None and not isinstance(self.gpuReq, GPU): + self.gpuReq = GPU(**as_dict(self.gpuReq)) + + if self.ramReq is not None and not isinstance(self.ramReq, Memory): + self.ramReq = Memory(**as_dict(self.ramReq)) + + if self.videoRamSize is not None and not isinstance(self.videoRamSize, MemorySize): + self.videoRamSize = MemorySize(**as_dict(self.videoRamSize)) + + if self.rootDiskReq is not None and not isinstance(self.rootDiskReq, Disk): + self.rootDiskReq = Disk(**as_dict(self.rootDiskReq)) + + if self.encryption is not None and not isinstance(self.encryption, Encryption): + self.encryption = Encryption(**as_dict(self.encryption)) + + if self.secureBoot is not None and not isinstance(self.secureBoot, Bool): + self.secureBoot = Bool(self.secureBoot) + + if self.vPMU is not None and not isinstance(self.vPMU, Bool): + self.vPMU = Bool(self.vPMU) + + if self.multiQueues is not None and not isinstance(self.multiQueues, Bool): + self.multiQueues = Bool(self.multiQueues) + + if self.updateStrategy is not None and not isinstance(self.updateStrategy, UpdateStrategy): + self.updateStrategy = UpdateStrategy(**as_dict(self.updateStrategy)) + + if self.licenseIncluded is not None and not isinstance(self.licenseIncluded, Bool): + self.licenseIncluded = Bool(self.licenseIncluded) + + if self.maintenance is not None and not isinstance(self.maintenance, MaintenanceSubscription): + self.maintenance = MaintenanceSubscription(**as_dict(self.maintenance)) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ContainerImage(Image): + """ + Image available for containers. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ContainerImage"] + class_class_curie: ClassVar[str] = "gx:ContainerImage" + class_name: ClassVar[str] = "ContainerImage" + class_model_uri: ClassVar[URIRef] = GX.ContainerImage + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + baseContainerImage: Union[dict, BaseContainerImage] = None + containerFormat: Union[str, "ContainerFormat"] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.baseContainerImage): + self.MissingRequiredField("baseContainerImage") + if not isinstance(self.baseContainerImage, BaseContainerImage): + self.baseContainerImage = BaseContainerImage(**as_dict(self.baseContainerImage)) + + if self._is_empty(self.containerFormat): + self.MissingRequiredField("containerFormat") + if not isinstance(self.containerFormat, ContainerFormat): + self.containerFormat = ContainerFormat(self.containerFormat) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class PXEImage(Image): + """ + PXE image for physical machines. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["PXEImage"] + class_class_curie: ClassVar[str] = "gx:PXEImage" + class_name: ClassVar[str] = "PXE_Image" + class_model_uri: ClassVar[URIRef] = GX.PXEImage + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + pxeImageDiskFormat: Optional[Union[str, "PXEDiskType"]] = "ISO" + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.pxeImageDiskFormat is not None and not isinstance(self.pxeImageDiskFormat, PXEDiskType): + self.pxeImageDiskFormat = PXEDiskType(self.pxeImageDiskFormat) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class OperatingSystem(SoftwareResource): + """ + A special Gaia-X Software Resource describing an operating system. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["OperatingSystem"] + class_class_curie: ClassVar[str] = "gx:OperatingSystem" + class_name: ClassVar[str] = "OperatingSystem" + class_model_uri: ClassVar[URIRef] = GX.OperatingSystem + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + osDistribution: Union[str, "OSDistribution"] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.osDistribution): + self.MissingRequiredField("osDistribution") + if not isinstance(self.osDistribution, OSDistribution): + self.osDistribution = OSDistribution(self.osDistribution) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class Hypervisor(SoftwareResource): + """ + A special Gaia-X Software Resource describing a hypervisor to provided virtual machines. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["Hypervisor"] + class_class_curie: ClassVar[str] = "gx:Hypervisor" + class_name: ClassVar[str] = "Hypervisor" + class_model_uri: ClassVar[URIRef] = GX.Hypervisor + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + hypervisorType: Union[str, "HypervisorType"] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.hypervisorType): + self.MissingRequiredField("hypervisorType") + if not isinstance(self.hypervisorType, HypervisorType): + self.hypervisorType = HypervisorType(self.hypervisorType) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ServiceOffering(GaiaXEntity): + """ + A digital service available for order. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ServiceOffering"] + class_class_curie: ClassVar[str] = "gx:ServiceOffering" + class_name: ClassVar[str] = "ServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.ServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + aggregationOfResources: Optional[Union[str, List[str]]] = empty_list() + dependsOn: Optional[Union[Union[dict, "ServiceOffering"], List[Union[dict, "ServiceOffering"]]]] = empty_list() + servicePolicy: Optional[Union[Union[dict, "AccessUsagePolicy"], List[Union[dict, "AccessUsagePolicy"]]]] = empty_list() + dataProtectionRegime: Optional[Union[Union[str, "PersonalDataProtectionRegime"], List[Union[str, "PersonalDataProtectionRegime"]]]] = empty_list() + keyword: Optional[Union[str, List[str]]] = empty_list() + provisionType: Optional[Union[str, "ProvisionTypes"]] = None + endpoint: Optional[Union[dict, Endpoint]] = None + hostedOn: Optional[Union[str, List[str]]] = empty_list() + serviceScope: Optional[str] = None + legalDocuments: Optional[Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]] = empty_list() + subContractors: Optional[Union[Union[dict, "SubContractor"], List[Union[dict, "SubContractor"]]]] = empty_list() + customerInstructions: Optional[Union[Union[dict, CustomerInstructions], List[Union[dict, CustomerInstructions]]]] = empty_list() + dataPortability: Optional[Union[Union[dict, DataPortability], List[Union[dict, DataPortability]]]] = empty_list() + possiblePersonalDataTransfers: Optional[Union[Union[dict, DataTransfer], List[Union[dict, DataTransfer]]]] = empty_list() + requiredMeasures: Optional[Union[Union[dict, Measure], List[Union[dict, Measure]]]] = empty_list() + cryptographicSecurityStandards: Optional[Union[Union[str, "CryptographicSecurityStandards"], List[Union[str, "CryptographicSecurityStandards"]]]] = empty_list() + providerContactInformation: Optional[Union[dict, ContactInformation]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.providedBy): + self.MissingRequiredField("providedBy") + if not isinstance(self.providedBy, LegalPersonRegistrationNumber): + self.providedBy = LegalPersonRegistrationNumber(self.providedBy) + + if self._is_empty(self.serviceOfferingTermsAndConditions): + self.MissingRequiredField("serviceOfferingTermsAndConditions") + #self._normalize_inlined_as_dict(slot_name="serviceOfferingTermsAndConditions", slot_type=TermsAndConditions, key_name="url", keyed=False) + + if self._is_empty(self.dataAccountExport): + self.MissingRequiredField("dataAccountExport") + #self._normalize_inlined_as_dict(slot_name="dataAccountExport", slot_type=DataAccountExport, key_name="requestType", keyed=False) + + if not isinstance(self.aggregationOfResources, list): + self.aggregationOfResources = [self.aggregationOfResources] if self.aggregationOfResources is not None else [] + self.aggregationOfResources = [v if isinstance(v, str) else str(v) for v in self.aggregationOfResources] + + #self._normalize_inlined_as_dict(slot_name="dependsOn", slot_type=ServiceOffering, key_name="providedBy", keyed=False) + + #self._normalize_inlined_as_dict(slot_name="servicePolicy", slot_type=AccessUsagePolicy, key_name="policyLanguage", keyed=False) + + if not isinstance(self.dataProtectionRegime, list): + self.dataProtectionRegime = [self.dataProtectionRegime] if self.dataProtectionRegime is not None else [] + self.dataProtectionRegime = [v if isinstance(v, PersonalDataProtectionRegime) else PersonalDataProtectionRegime(v) for v in self.dataProtectionRegime] + + if not isinstance(self.keyword, list): + self.keyword = [self.keyword] if self.keyword is not None else [] + self.keyword = [v if isinstance(v, str) else str(v) for v in self.keyword] + + if self.provisionType is not None and not isinstance(self.provisionType, ProvisionTypes): + self.provisionType = ProvisionTypes(self.provisionType) + + if self.endpoint is not None and not isinstance(self.endpoint, Endpoint): + self.endpoint = Endpoint(**as_dict(self.endpoint)) + + if not isinstance(self.hostedOn, list): + self.hostedOn = [self.hostedOn] if self.hostedOn is not None else [] + self.hostedOn = [v if isinstance(v, str) else str(v) for v in self.hostedOn] + + if self.serviceScope is not None and not isinstance(self.serviceScope, str): + self.serviceScope = str(self.serviceScope) + + self._normalize_inlined_as_dict(slot_name="legalDocuments", slot_type=LegalDocument, key_name="url", keyed=False) + + self._normalize_inlined_as_dict(slot_name="subContractors", slot_type=SubContractor, key_name="applicableJurisdiction", keyed=False) + + self._normalize_inlined_as_dict(slot_name="customerInstructions", slot_type=CustomerInstructions, key_name="terms", keyed=False) + + self._normalize_inlined_as_dict(slot_name="dataPortability", slot_type=DataPortability, key_name="resource", keyed=False) + + self._normalize_inlined_as_dict(slot_name="possiblePersonalDataTransfers", slot_type=DataTransfer, key_name="reason", keyed=False) + + self._normalize_inlined_as_dict(slot_name="requiredMeasures", slot_type=Measure, key_name="description", keyed=False) + + if not isinstance(self.cryptographicSecurityStandards, list): + self.cryptographicSecurityStandards = [self.cryptographicSecurityStandards] if self.cryptographicSecurityStandards is not None else [] + self.cryptographicSecurityStandards = [v if isinstance(v, CryptographicSecurityStandards) else CryptographicSecurityStandards(v) for v in self.cryptographicSecurityStandards] + + if self.providerContactInformation is not None and not isinstance(self.providerContactInformation, ContactInformation): + self.providerContactInformation = ContactInformation(**as_dict(self.providerContactInformation)) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class DataProduct(ServiceOffering): + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["DataProduct"] + class_class_curie: ClassVar[str] = "gx:DataProduct" + class_name: ClassVar[str] = "DataProduct" + class_model_uri: ClassVar[URIRef] = GX.DataProduct + + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + termsAndConditions: str = None + licenses: Union[str, List[str]] = None + title: str = None + aggregationOf: Union[Union[dict, DataSet], List[Union[dict, DataSet]]] = None + identifier: str = None + providedBy: Optional[str] = None + description: Optional[str] = None + issued: Optional[Union[str, XSDDate]] = None + obsoleteDateTime: Optional[Union[str, XSDDateTime]] = None + hasPolicy: Optional[str] = None + dataLicensors: Optional[Union[Union[str, DataLicensorRegistrationNumber], List[Union[str, DataLicensorRegistrationNumber]]]] = empty_list() + dataUsageAgreements: Optional[Union[Union[dict, DataUsageAgreement], List[Union[dict, DataUsageAgreement]]]] = empty_list() + contactPoint: Optional[str] = None + conformsTo: Optional[str] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.termsAndConditions): + self.MissingRequiredField("termsAndConditions") + if not isinstance(self.termsAndConditions, str): + self.termsAndConditions = str(self.termsAndConditions) + + if self._is_empty(self.licenses): + self.MissingRequiredField("licenses") + if not isinstance(self.licenses, list): + self.licenses = [self.licenses] if self.licenses is not None else [] + self.licenses = [v if isinstance(v, str) else str(v) for v in self.licenses] + + if self._is_empty(self.title): + self.MissingRequiredField("title") + if not isinstance(self.title, str): + self.title = str(self.title) + + if self._is_empty(self.aggregationOf): + self.MissingRequiredField("aggregationOf") + self._normalize_inlined_as_dict(slot_name="aggregationOf", slot_type=DataSet, key_name="title", keyed=False) + + if self._is_empty(self.identifier): + self.MissingRequiredField("identifier") + if not isinstance(self.identifier, str): + self.identifier = str(self.identifier) + + if self._is_empty(self.providedBy): + self.MissingRequiredField("providedBy") + if not isinstance(self.providedBy, DataProducerRegistrationNumber): + self.providedBy = DataProducerRegistrationNumber(self.providedBy) + + if self.providedBy is not None and not isinstance(self.providedBy, str): + self.providedBy = str(self.providedBy) + + if self.description is not None and not isinstance(self.description, str): + self.description = str(self.description) + + if self.issued is not None and not isinstance(self.issued, XSDDate): + self.issued = XSDDate(self.issued) + + if self.obsoleteDateTime is not None and not isinstance(self.obsoleteDateTime, XSDDateTime): + self.obsoleteDateTime = XSDDateTime(self.obsoleteDateTime) + + if self.hasPolicy is not None and not isinstance(self.hasPolicy, str): + self.hasPolicy = str(self.hasPolicy) + + if not isinstance(self.dataLicensors, list): + self.dataLicensors = [self.dataLicensors] if self.dataLicensors is not None else [] + self.dataLicensors = [v if isinstance(v, DataLicensorRegistrationNumber) else DataLicensorRegistrationNumber(v) for v in self.dataLicensors] + + self._normalize_inlined_as_dict(slot_name="dataUsageAgreements", slot_type=DataUsageAgreement, key_name="producedBy", keyed=False) + + if self.contactPoint is not None and not isinstance(self.contactPoint, str): + self.contactPoint = str(self.contactPoint) + + if self.conformsTo is not None and not isinstance(self.conformsTo, str): + self.conformsTo = str(self.conformsTo) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class InfrastructureServiceOffering(ServiceOffering): + """ + A digital service available for order and offering computational, storage and/pr network capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["InfrastructureServiceOffering"] + class_class_curie: ClassVar[str] = "gx:InfrastructureServiceOffering" + class_name: ClassVar[str] = "InfrastructureServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.InfrastructureServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + +@dataclass(repr=False) +class ConnectivityServiceOffering(InfrastructureServiceOffering): + """ + Connectivity Infrastructure services are made out of Physical, Link and Network services. Interconnection services + between providers exist as a subclass of Network services. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ConnectivityServiceOffering"] + class_class_curie: ClassVar[str] = "gx:ConnectivityServiceOffering" + class_name: ClassVar[str] = "ConnectivityServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.ConnectivityServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + connectivityConfiguration: Union[Union[dict, ConnectivityConfiguration], List[Union[dict, ConnectivityConfiguration]]] = None + connectivityQoS: Optional[Union[dict, QoS]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.connectivityConfiguration): + self.MissingRequiredField("connectivityConfiguration") + if not isinstance(self.connectivityConfiguration, list): + self.connectivityConfiguration = [self.connectivityConfiguration] if self.connectivityConfiguration is not None else [] + self.connectivityConfiguration = [v if isinstance(v, ConnectivityConfiguration) else ConnectivityConfiguration(**as_dict(v)) for v in self.connectivityConfiguration] + + if self.connectivityQoS is not None and not isinstance(self.connectivityQoS, QoS): + self.connectivityQoS = QoS(**as_dict(self.connectivityQoS)) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class LinkConnectivityServiceOffering(ConnectivityServiceOffering): + """ + TBD + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["LinkConnectivityServiceOffering"] + class_class_curie: ClassVar[str] = "gx:LinkConnectivityServiceOffering" + class_name: ClassVar[str] = "LinkConnectivityServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.LinkConnectivityServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + connectivityConfiguration: Union[Union[dict, ConnectivityConfiguration], List[Union[dict, ConnectivityConfiguration]]] = None + protocolType: Union[str, "ProtocolType"] = None + vlanConfiguration: Optional[Union[dict, VLANConfiguration]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.protocolType): + self.MissingRequiredField("protocolType") + if not isinstance(self.protocolType, ProtocolType): + self.protocolType = ProtocolType(self.protocolType) + + if self.vlanConfiguration is not None and not isinstance(self.vlanConfiguration, VLANConfiguration): + self.vlanConfiguration = VLANConfiguration(**as_dict(self.vlanConfiguration)) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class NetworkConnectivityServiceOffering(ConnectivityServiceOffering): + """ + TBD + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["NetworkConnectivityServiceOffering"] + class_class_curie: ClassVar[str] = "gx:NetworkConnectivityServiceOffering" + class_name: ClassVar[str] = "NetworkConnectivityServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.NetworkConnectivityServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + connectivityConfiguration: Union[Union[dict, ConnectivityConfiguration], List[Union[dict, ConnectivityConfiguration]]] = None + serviceType: Optional[str] = None + publicIpAddressProvisioning: Optional[Union[str, "PublicIpAddressProvisioningTypes"]] = None + ipVersion: Optional[Union[str, "IpVersionTypes"]] = None + tenantSeparation: Optional[Union[str, "TenantSeparation"]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.serviceType is not None and not isinstance(self.serviceType, str): + self.serviceType = str(self.serviceType) + + if self.publicIpAddressProvisioning is not None and not isinstance(self.publicIpAddressProvisioning, PublicIpAddressProvisioningTypes): + self.publicIpAddressProvisioning = PublicIpAddressProvisioningTypes(self.publicIpAddressProvisioning) + + if self.ipVersion is not None and not isinstance(self.ipVersion, IpVersionTypes): + self.ipVersion = IpVersionTypes(self.ipVersion) + + if self.tenantSeparation is not None and not isinstance(self.tenantSeparation, TenantSeparation): + self.tenantSeparation = TenantSeparation(self.tenantSeparation) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class InterconnectionServiceOffering(NetworkConnectivityServiceOffering): + """ + TBD + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["InterconnectionServiceOffering"] + class_class_curie: ClassVar[str] = "gx:InterconnectionServiceOffering" + class_name: ClassVar[str] = "InterconnectionServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.InterconnectionServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + connectivityConfiguration: Union[Union[dict, ConnectivityConfiguration], List[Union[dict, ConnectivityConfiguration]]] = None + connectedNetworkA: Optional[Union[int, List[int]]] = empty_list() + connectedNetworkZ: Optional[Union[int, List[int]]] = empty_list() + prefixSetA: Optional[Union[str, List[str]]] = empty_list() + prefixSetZ: Optional[Union[str, List[str]]] = empty_list() + vlanConfiguration: Optional[Union[dict, VLANConfiguration]] = None + connectionType: Optional[Union[str, List[str]]] = empty_list() + interfaceType: Optional[Union[str, List[str]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if not isinstance(self.connectedNetworkA, list): + self.connectedNetworkA = [self.connectedNetworkA] if self.connectedNetworkA is not None else [] + self.connectedNetworkA = [v if isinstance(v, int) else int(v) for v in self.connectedNetworkA] + + if not isinstance(self.connectedNetworkZ, list): + self.connectedNetworkZ = [self.connectedNetworkZ] if self.connectedNetworkZ is not None else [] + self.connectedNetworkZ = [v if isinstance(v, int) else int(v) for v in self.connectedNetworkZ] + + if not isinstance(self.prefixSetA, list): + self.prefixSetA = [self.prefixSetA] if self.prefixSetA is not None else [] + self.prefixSetA = [v if isinstance(v, str) else str(v) for v in self.prefixSetA] + + if not isinstance(self.prefixSetZ, list): + self.prefixSetZ = [self.prefixSetZ] if self.prefixSetZ is not None else [] + self.prefixSetZ = [v if isinstance(v, str) else str(v) for v in self.prefixSetZ] + + if self.vlanConfiguration is not None and not isinstance(self.vlanConfiguration, VLANConfiguration): + self.vlanConfiguration = VLANConfiguration(**as_dict(self.vlanConfiguration)) + + if not isinstance(self.connectionType, list): + self.connectionType = [self.connectionType] if self.connectionType is not None else [] + self.connectionType = [v if isinstance(v, str) else str(v) for v in self.connectionType] + + if not isinstance(self.interfaceType, list): + self.interfaceType = [self.interfaceType] if self.interfaceType is not None else [] + self.interfaceType = [v if isinstance(v, str) else str(v) for v in self.interfaceType] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class PhysicalConnectivityServiceOffering(ConnectivityServiceOffering): + """ + TBD + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["PhysicalConnectivityServiceOffering"] + class_class_curie: ClassVar[str] = "gx:PhysicalConnectivityServiceOffering" + class_name: ClassVar[str] = "PhysicalConnectivityServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.PhysicalConnectivityServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + connectivityConfiguration: Union[Union[dict, ConnectivityConfiguration], List[Union[dict, ConnectivityConfiguration]]] = None + circuitType: str = None + interfaceType: str = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.circuitType): + self.MissingRequiredField("circuitType") + if not isinstance(self.circuitType, str): + self.circuitType = str(self.circuitType) + + if self._is_empty(self.interfaceType): + self.MissingRequiredField("interfaceType") + if not isinstance(self.interfaceType, str): + self.interfaceType = str(self.interfaceType) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ComputeServiceOffering(InfrastructureServiceOffering): + """ + A digital service available for order and offering computational capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ComputeServiceOffering"] + class_class_curie: ClassVar[str] = "gx:ComputeServiceOffering" + class_name: ClassVar[str] = "ComputeServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.ComputeServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + tenantSeparation: Optional[Union[str, "TenantSeparation"]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.tenantSeparation is not None and not isinstance(self.tenantSeparation, TenantSeparation): + self.tenantSeparation = TenantSeparation(self.tenantSeparation) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ComputeFunctionServiceOffering(ComputeServiceOffering): + """ + A digital service available for order and providing compute functions capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ComputeFunctionServiceOffering"] + class_class_curie: ClassVar[str] = "gx:ComputeFunctionServiceOffering" + class_name: ClassVar[str] = "ComputeFunctionServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.ComputeFunctionServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + computeFunctionConfiguration: Union[dict, ComputeFunctionConfiguration] = None + computeFunctionDebugTools: Optional[Union[bool, Bool]] = None + computeFunctionEditor: Optional[Union[bool, Bool]] = None + computeFunctionAllowQuota: Optional[Union[bool, Bool]] = None + computeFunctionAllowTimeout: Optional[Union[bool, Bool]] = None + computeFunctionAllowVersioning: Optional[Union[bool, Bool]] = None + computeFunctionAllowAutoScaling: Optional[Union[bool, Bool]] = None + computeFunctionAllowFSMount: Optional[Union[bool, Bool]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.computeFunctionConfiguration): + self.MissingRequiredField("computeFunctionConfiguration") + if not isinstance(self.computeFunctionConfiguration, ComputeFunctionConfiguration): + self.computeFunctionConfiguration = ComputeFunctionConfiguration(**as_dict(self.computeFunctionConfiguration)) + + if self.computeFunctionDebugTools is not None and not isinstance(self.computeFunctionDebugTools, Bool): + self.computeFunctionDebugTools = Bool(self.computeFunctionDebugTools) + + if self.computeFunctionEditor is not None and not isinstance(self.computeFunctionEditor, Bool): + self.computeFunctionEditor = Bool(self.computeFunctionEditor) + + if self.computeFunctionAllowQuota is not None and not isinstance(self.computeFunctionAllowQuota, Bool): + self.computeFunctionAllowQuota = Bool(self.computeFunctionAllowQuota) + + if self.computeFunctionAllowTimeout is not None and not isinstance(self.computeFunctionAllowTimeout, Bool): + self.computeFunctionAllowTimeout = Bool(self.computeFunctionAllowTimeout) + + if self.computeFunctionAllowVersioning is not None and not isinstance(self.computeFunctionAllowVersioning, Bool): + self.computeFunctionAllowVersioning = Bool(self.computeFunctionAllowVersioning) + + if self.computeFunctionAllowAutoScaling is not None and not isinstance(self.computeFunctionAllowAutoScaling, Bool): + self.computeFunctionAllowAutoScaling = Bool(self.computeFunctionAllowAutoScaling) + + if self.computeFunctionAllowFSMount is not None and not isinstance(self.computeFunctionAllowFSMount, Bool): + self.computeFunctionAllowFSMount = Bool(self.computeFunctionAllowFSMount) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class VirtualMachineServiceOffering(ComputeServiceOffering): + """ + A digital service available for order and offering computational capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["VirtualMachineServiceOffering"] + class_class_curie: ClassVar[str] = "gx:VirtualMachineServiceOffering" + class_name: ClassVar[str] = "VirtualMachineServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.VirtualMachineServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + codeArtifact: Union[Union[dict, "VMImage"], List[Union[dict, "VMImage"]]] = None + instantiationReq: Union[Union[dict, "ServerFlavor"], List[Union[dict, "ServerFlavor"]]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.codeArtifact): + self.MissingRequiredField("codeArtifact") + #self._normalize_inlined_as_dict(slot_name="codeArtifact", slot_type=VMImage, key_name="copyrightOwnedBy", keyed=False) + + if self._is_empty(self.instantiationReq): + self.MissingRequiredField("instantiationReq") + #self._normalize_inlined_as_dict(slot_name="instantiationReq", slot_type=ServerFlavor, key_name="cpu", keyed=False) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ContainerServiceOffering(ComputeServiceOffering): + """ + A digital service available for order and providing containers. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ContainerServiceOffering"] + class_class_curie: ClassVar[str] = "gx:ContainerServiceOffering" + class_name: ClassVar[str] = "ContainerServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.ContainerServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + codeArtifact: Union[Union[dict, ContainerImage], List[Union[dict, ContainerImage]]] = None + instantiationReq: Union[Union[dict, ContainerResourceLimits], List[Union[dict, ContainerResourceLimits]]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.codeArtifact): + self.MissingRequiredField("codeArtifact") + self._normalize_inlined_as_dict(slot_name="codeArtifact", slot_type=ContainerImage, key_name="copyrightOwnedBy", keyed=False) + + if self._is_empty(self.instantiationReq): + self.MissingRequiredField("instantiationReq") + self._normalize_inlined_as_dict(slot_name="instantiationReq", slot_type=ContainerResourceLimits, key_name="confidential", keyed=False) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class BareMetalServiceOffering(ComputeServiceOffering): + """ + A digital service available for order and offering bare metal computational capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["BareMetalServiceOffering"] + class_class_curie: ClassVar[str] = "gx:BareMetalServiceOffering" + class_name: ClassVar[str] = "BareMetalServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.BareMetalServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, "TermsAndConditions"], List[Union[dict, "TermsAndConditions"]]] = None + dataAccountExport: Union[Union[dict, "DataAccountExport"], List[Union[dict, "DataAccountExport"]]] = None + codeArtifact: Union[Union[dict, PXEImage], List[Union[dict, PXEImage]]] = None + instantiationReq: Union[Union[dict, "ServerFlavor"], List[Union[dict, "ServerFlavor"]]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.codeArtifact): + self.MissingRequiredField("codeArtifact") + self._normalize_inlined_as_dict(slot_name="codeArtifact", slot_type=PXEImage, key_name="copyrightOwnedBy", keyed=False) + + if self._is_empty(self.instantiationReq): + self.MissingRequiredField("instantiationReq") + self._normalize_inlined_as_dict(slot_name="instantiationReq", slot_type=ServerFlavor, key_name="cpu", keyed=False) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class TermsAndConditions(YAMLRoot): + """ + Terms and Conditions applying to a service offering. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["TermsAndConditions"] + class_class_curie: ClassVar[str] = "gx:TermsAndConditions" + class_name: ClassVar[str] = "TermsAndConditions" + class_model_uri: ClassVar[URIRef] = GX.TermsAndConditions + + url: Union[str, URI] = None + hash: str = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.url): + self.MissingRequiredField("url") + if not isinstance(self.url, URI): + self.url = URI(self.url) + + if self._is_empty(self.hash): + self.MissingRequiredField("hash") + if not isinstance(self.hash, str): + self.hash = str(self.hash) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class DataAccountExport(YAMLRoot): + """ + List of methods to export data from your account out of the service. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["DataAccountExport"] + class_class_curie: ClassVar[str] = "gx:DataAccountExport" + class_name: ClassVar[str] = "DataAccountExport" + class_model_uri: ClassVar[URIRef] = GX.DataAccountExport + + requestType: Union[str, "RequestTypes"] = None + accessType: Union[str, "AccessTypes"] = None + formatType: Union[str, "MIMETypes"] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.requestType): + self.MissingRequiredField("requestType") + if not isinstance(self.requestType, RequestTypes): + self.requestType = RequestTypes(self.requestType) + + if self._is_empty(self.accessType): + self.MissingRequiredField("accessType") + if not isinstance(self.accessType, AccessTypes): + self.accessType = AccessTypes(self.accessType) + + if self._is_empty(self.formatType): + self.MissingRequiredField("formatType") + if not isinstance(self.formatType, MIMETypes): + self.formatType = MIMETypes(self.formatType) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class StandardConformity(YAMLRoot): + """ + Details about standard applied to Gaia-X entities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["StandardConformity"] + class_class_curie: ClassVar[str] = "gx:StandardConformity" + class_name: ClassVar[str] = "StandardConformity" + class_model_uri: ClassVar[URIRef] = GX.StandardConformity + + title: str = None + standardReference: Union[str, URI] = None + publisher: Optional[str] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.title): + self.MissingRequiredField("title") + if not isinstance(self.title, str): + self.title = str(self.title) + + if self._is_empty(self.standardReference): + self.MissingRequiredField("standardReference") + if not isinstance(self.standardReference, URI): + self.standardReference = URI(self.standardReference) + + if self.publisher is not None and not isinstance(self.publisher, str): + self.publisher = str(self.publisher) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class StorageConfiguration(InstantiationRequirement): + """ + Represents the attributes that are configurable at service instantiation for storage service offerings. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["StorageConfiguration"] + class_class_curie: ClassVar[str] = "gx:StorageConfiguration" + class_name: ClassVar[str] = "StorageConfiguration" + class_model_uri: ClassVar[URIRef] = GX.StorageConfiguration + + storageCompression: Optional[Union[str, "CompressionAlgorithm"]] = None + storageDeduplication: Optional[Union[str, "DeduplicationMethod"]] = None + storageEncryption: Optional[Union[dict, Encryption]] = None + storageRedundancyMechanism: Optional[Union[dict, "StorageRedundancyMechanism"]] = None + backupPolicy: Optional[Union[Union[dict, "BackupPolicy"], List[Union[dict, "BackupPolicy"]]]] = empty_list() + storageQoS: Optional[Union[dict, QoS]] = None + blockSize: Optional[Union[dict, MemorySize]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.storageCompression is not None and not isinstance(self.storageCompression, CompressionAlgorithm): + self.storageCompression = CompressionAlgorithm(self.storageCompression) + + if self.storageDeduplication is not None and not isinstance(self.storageDeduplication, DeduplicationMethod): + self.storageDeduplication = DeduplicationMethod(self.storageDeduplication) + + if self.storageEncryption is not None and not isinstance(self.storageEncryption, Encryption): + self.storageEncryption = Encryption(**as_dict(self.storageEncryption)) + + if self.storageRedundancyMechanism is not None and not isinstance(self.storageRedundancyMechanism, StorageRedundancyMechanism): + self.storageRedundancyMechanism = StorageRedundancyMechanism() + + self._normalize_inlined_as_dict(slot_name="backupPolicy", slot_type=BackupPolicy, key_name="backupFrequency", keyed=False) + + if self.storageQoS is not None and not isinstance(self.storageQoS, QoS): + self.storageQoS = QoS(**as_dict(self.storageQoS)) + + if self.blockSize is not None and not isinstance(self.blockSize, MemorySize): + self.blockSize = MemorySize(**as_dict(self.blockSize)) + + super().__post_init__(**kwargs) + + +class StorageRedundancyMechanism(YAMLRoot): + """ + Abstract container for storage redundanc mechanisms + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["StorageRedundancyMechanism"] + class_class_curie: ClassVar[str] = "gx:StorageRedundancyMechanism" + class_name: ClassVar[str] = "StorageRedundancyMechanism" + class_model_uri: ClassVar[URIRef] = GX.StorageRedundancyMechanism + + +@dataclass(repr=False) +class FileStorageConfiguration(StorageConfiguration): + """ + Represents the attributes that are configurable at service instantiation for storage service offerings. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["FileStorageConfiguration"] + class_class_curie: ClassVar[str] = "gx:FileStorageConfiguration" + class_name: ClassVar[str] = "FileStorageConfiguration" + class_model_uri: ClassVar[URIRef] = GX.FileStorageConfiguration + + fileSystemType: Optional[Union[Union[str, "FileSystemType"], List[Union[str, "FileSystemType"]]]] = empty_list() + highLevelAccessProtocol: Optional[Union[Union[str, "FileAccessProtocol"], List[Union[str, "FileAccessProtocol"]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if not isinstance(self.fileSystemType, list): + self.fileSystemType = [self.fileSystemType] if self.fileSystemType is not None else [] + self.fileSystemType = [v if isinstance(v, FileSystemType) else FileSystemType(v) for v in self.fileSystemType] + + if not isinstance(self.highLevelAccessProtocol, list): + self.highLevelAccessProtocol = [self.highLevelAccessProtocol] if self.highLevelAccessProtocol is not None else [] + self.highLevelAccessProtocol = [v if isinstance(v, FileAccessProtocol) else FileAccessProtocol(v) for v in self.highLevelAccessProtocol] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class BlockStorageConfiguration(StorageConfiguration): + """ + Represents the attributes that are configurable at service instantiation for storage service offerings. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["BlockStorageConfiguration"] + class_class_curie: ClassVar[str] = "gx:BlockStorageConfiguration" + class_name: ClassVar[str] = "BlockStorageConfiguration" + class_model_uri: ClassVar[URIRef] = GX.BlockStorageConfiguration + + userSnapshots: Optional[Union[dict, "SnapshotPolicy"]] = None + blockStorageTechnology: Optional[Union[str, "BlockStorageTechnology"]] = None + lowLevelBlockAccessProtocol: Optional[Union[str, "BlockAccessProtocol"]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.userSnapshots is not None and not isinstance(self.userSnapshots, SnapshotPolicy): + self.userSnapshots = SnapshotPolicy(**as_dict(self.userSnapshots)) + + if self.blockStorageTechnology is not None and not isinstance(self.blockStorageTechnology, BlockStorageTechnology): + self.blockStorageTechnology = BlockStorageTechnology(self.blockStorageTechnology) + + if self.lowLevelBlockAccessProtocol is not None and not isinstance(self.lowLevelBlockAccessProtocol, BlockAccessProtocol): + self.lowLevelBlockAccessProtocol = BlockAccessProtocol(self.lowLevelBlockAccessProtocol) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class BackupPolicy(YAMLRoot): + """ + Describe data protection features based on Backup for storage services. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["BackupPolicy"] + class_class_curie: ClassVar[str] = "gx:BackupPolicy" + class_name: ClassVar[str] = "BackupPolicy" + class_model_uri: ClassVar[URIRef] = GX.BackupPolicy + + backupFrequency: Union[str, "BackupFrequency"] = None + backupRetention: str = None + backupMethod: Union[str, "BackupMethod"] = None + backupReplication: Union[Union[dict, "ReplicationPolicy"], List[Union[dict, "ReplicationPolicy"]]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.backupFrequency): + self.MissingRequiredField("backupFrequency") + if not isinstance(self.backupFrequency, BackupFrequency): + self.backupFrequency = BackupFrequency(self.backupFrequency) + + if self._is_empty(self.backupRetention): + self.MissingRequiredField("backupRetention") + if not isinstance(self.backupRetention, str): + self.backupRetention = str(self.backupRetention) + + if self._is_empty(self.backupMethod): + self.MissingRequiredField("backupMethod") + if not isinstance(self.backupMethod, BackupMethod): + self.backupMethod = BackupMethod(self.backupMethod) + + if self._is_empty(self.backupReplication): + self.MissingRequiredField("backupReplication") + self._normalize_inlined_as_dict(slot_name="backupReplication", slot_type=ReplicationPolicy, key_name="replicas", keyed=False) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class RAID(StorageRedundancyMechanism): + """ + Replication Mechanism: Redundant Array of Independent Disks. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["RAID"] + class_class_curie: ClassVar[str] = "gx:RAID" + class_name: ClassVar[str] = "RAID" + class_model_uri: ClassVar[URIRef] = GX.RAID + + raidLevel: Union[str, "RAIDLevel"] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.raidLevel): + self.MissingRequiredField("raidLevel") + if not isinstance(self.raidLevel, RAIDLevel): + self.raidLevel = RAIDLevel(self.raidLevel) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ReplicationPolicy(StorageRedundancyMechanism): + """ + Replication Mechanism: Replication. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ReplicationPolicy"] + class_class_curie: ClassVar[str] = "gx:ReplicationPolicy" + class_name: ClassVar[str] = "ReplicationPolicy" + class_model_uri: ClassVar[URIRef] = GX.ReplicationPolicy + + replicas: Union[Union[dict, "Replica"], List[Union[dict, "Replica"]]] = None + isSynchronous: Optional[Union[bool, Bool]] = True + consistencyType: Optional[Union[str, "ConsistencyType"]] = "Strong" + geoReplication: Optional[Union[Union[str, "GeoReplicationScope"], List[Union[str, "GeoReplicationScope"]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.replicas): + self.MissingRequiredField("replicas") + self._normalize_inlined_as_dict(slot_name="replicas", slot_type=Replica, key_name="replicaLocation", keyed=False) + + if self.isSynchronous is not None and not isinstance(self.isSynchronous, Bool): + self.isSynchronous = Bool(self.isSynchronous) + + if self.consistencyType is not None and not isinstance(self.consistencyType, ConsistencyType): + self.consistencyType = ConsistencyType(self.consistencyType) + + if not isinstance(self.geoReplication, list): + self.geoReplication = [self.geoReplication] if self.geoReplication is not None else [] + self.geoReplication = [v if isinstance(v, GeoReplicationScope) else GeoReplicationScope(v) for v in self.geoReplication] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class Replica(YAMLRoot): + """ + Details of replicas created by replication. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["Replica"] + class_class_curie: ClassVar[str] = "gx:Replica" + class_name: ClassVar[str] = "Replica" + class_model_uri: ClassVar[URIRef] = GX.Replica + + replicaLocation: Union[dict, PhysicalResource] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.replicaLocation): + self.MissingRequiredField("replicaLocation") + if not isinstance(self.replicaLocation, PhysicalResource): + self.replicaLocation = PhysicalResource(**as_dict(self.replicaLocation)) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ErasureCoding(StorageRedundancyMechanism): + """ + Replication Mechanism: Erasure coding. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ErasureCoding"] + class_class_curie: ClassVar[str] = "gx:ErasureCoding" + class_name: ClassVar[str] = "ErasureCoding" + class_model_uri: ClassVar[URIRef] = GX.ErasureCoding + + erasureCode: Union[str, "ErasureCode"] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.erasureCode): + self.MissingRequiredField("erasureCode") + if not isinstance(self.erasureCode, ErasureCode): + self.erasureCode = ErasureCode(self.erasureCode) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class SnapshotPolicy(YAMLRoot): + """ + Describe capablities to create user snapshots + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["SnapshotPolicy"] + class_class_curie: ClassVar[str] = "gx:SnapshotPolicy" + class_name: ClassVar[str] = "SnapshotPolicy" + class_model_uri: ClassVar[URIRef] = GX.SnapshotPolicy + + snapshotReplication: Optional[Union[Union[dict, ReplicationPolicy], List[Union[dict, ReplicationPolicy]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + self._normalize_inlined_as_dict(slot_name="snapshotReplication", slot_type=ReplicationPolicy, key_name="replicas", keyed=False) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class StorageServiceOffering(InfrastructureServiceOffering): + """ + A digital service available for order and offering storage capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["StorageServiceOffering"] + class_class_curie: ClassVar[str] = "gx:StorageServiceOffering" + class_name: ClassVar[str] = "StorageServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.StorageServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None + dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None + storageConfiguration: Union[dict, StorageConfiguration] = None + minimumSize: Optional[Union[dict, MemorySize]] = None + maximumSize: Optional[Union[dict, MemorySize]] = None + lifetimeManagement: Optional[int] = None + versioning: Optional[Union[bool, Bool]] = None + storageConsistency: Optional[Union[str, "ConsistencyType"]] = None + dataViews: Optional[Union[bool, Bool]] = None + multipleViews: Optional[Union[bool, Bool]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.storageConfiguration): + self.MissingRequiredField("storageConfiguration") + if not isinstance(self.storageConfiguration, StorageConfiguration): + self.storageConfiguration = StorageConfiguration(**as_dict(self.storageConfiguration)) + + if self.minimumSize is not None and not isinstance(self.minimumSize, MemorySize): + self.minimumSize = MemorySize(**as_dict(self.minimumSize)) + + if self.maximumSize is not None and not isinstance(self.maximumSize, MemorySize): + self.maximumSize = MemorySize(**as_dict(self.maximumSize)) + + if self.lifetimeManagement is not None and not isinstance(self.lifetimeManagement, int): + self.lifetimeManagement = int(self.lifetimeManagement) + + if self.versioning is not None and not isinstance(self.versioning, Bool): + self.versioning = Bool(self.versioning) + + if self.storageConsistency is not None and not isinstance(self.storageConsistency, ConsistencyType): + self.storageConsistency = ConsistencyType(self.storageConsistency) + + if self.dataViews is not None and not isinstance(self.dataViews, Bool): + self.dataViews = Bool(self.dataViews) + + if self.multipleViews is not None and not isinstance(self.multipleViews, Bool): + self.multipleViews = Bool(self.multipleViews) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class FileStorageServiceOffering(StorageServiceOffering): + """ + A digital service available for order and offering file storage capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["FileStorageServiceOffering"] + class_class_curie: ClassVar[str] = "gx:FileStorageServiceOffering" + class_name: ClassVar[str] = "FileStorageServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.FileStorageServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None + dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None + storageConfiguration: Union[dict, FileStorageConfiguration] = None + accessSemantics: Optional[Union[bool, Bool]] = None + accessAttributes: Optional[Union[Union[str, "AccessAttribute"], List[Union[str, "AccessAttribute"]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.storageConfiguration): + self.MissingRequiredField("storageConfiguration") + if not isinstance(self.storageConfiguration, FileStorageConfiguration): + self.storageConfiguration = FileStorageConfiguration(**as_dict(self.storageConfiguration)) + + if self.accessSemantics is not None and not isinstance(self.accessSemantics, Bool): + self.accessSemantics = Bool(self.accessSemantics) + + if not isinstance(self.accessAttributes, list): + self.accessAttributes = [self.accessAttributes] if self.accessAttributes is not None else [] + self.accessAttributes = [v if isinstance(v, AccessAttribute) else AccessAttribute(v) for v in self.accessAttributes] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class BlockStorageServiceOffering(StorageServiceOffering): + """ + A digital service available for order and offering block storage capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["BlockStorageServiceOffering"] + class_class_curie: ClassVar[str] = "gx:BlockStorageServiceOffering" + class_name: ClassVar[str] = "BlockStorageServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.BlockStorageServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None + dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None + storageConfiguration: Union[dict, BlockStorageConfiguration] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.storageConfiguration): + self.MissingRequiredField("storageConfiguration") + if not isinstance(self.storageConfiguration, BlockStorageConfiguration): + self.storageConfiguration = BlockStorageConfiguration(**as_dict(self.storageConfiguration)) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ObjectStorageServiceOffering(StorageServiceOffering): + """ + A digital service available for order and offering object storage capabilities. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ObjectStorageServiceOffering"] + class_class_curie: ClassVar[str] = "gx:ObjectStorageServiceOffering" + class_name: ClassVar[str] = "ObjectStorageServiceOffering" + class_model_uri: ClassVar[URIRef] = GX.ObjectStorageServiceOffering + + providedBy: Union[str, LegalPersonRegistrationNumber] = None + serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None + dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None + storageConfiguration: Union[dict, StorageConfiguration] = None + accessAttributes: Optional[Union[Union[str, "AccessAttribute"], List[Union[str, "AccessAttribute"]]]] = empty_list() + maximumObjectSize: Optional[Union[dict, MemorySize]] = None + objectAPICompatibility: Optional[Union[Union[str, "StorageAPI"], List[Union[str, "StorageAPI"]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if not isinstance(self.accessAttributes, list): + self.accessAttributes = [self.accessAttributes] if self.accessAttributes is not None else [] + self.accessAttributes = [v if isinstance(v, AccessAttribute) else AccessAttribute(v) for v in self.accessAttributes] + + if self.maximumObjectSize is not None and not isinstance(self.maximumObjectSize, MemorySize): + self.maximumObjectSize = MemorySize(**as_dict(self.maximumObjectSize)) + + if not isinstance(self.objectAPICompatibility, list): + self.objectAPICompatibility = [self.objectAPICompatibility] if self.objectAPICompatibility is not None else [] + self.objectAPICompatibility = [v if isinstance(v, StorageAPI) else StorageAPI(v) for v in self.objectAPICompatibility] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class SubContractor(YAMLRoot): + """ + Represents a subcontractor with specific legal and communication attributes. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["SubContractor"] + class_class_curie: ClassVar[str] = "gx:SubContractor" + class_name: ClassVar[str] = "SubContractor" + class_model_uri: ClassVar[URIRef] = GX.SubContractor + + applicableJurisdiction: Union[str, "CountryNameAlpha2"] = None + legalName: str = None + communicationMethods: Union[str, List[str]] = None + informationDocuments: Union[str, List[str]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.applicableJurisdiction): + self.MissingRequiredField("applicableJurisdiction") + if not isinstance(self.applicableJurisdiction, CountryNameAlpha2): + self.applicableJurisdiction = CountryNameAlpha2(self.applicableJurisdiction) + + if self._is_empty(self.legalName): + self.MissingRequiredField("legalName") + if not isinstance(self.legalName, str): + self.legalName = str(self.legalName) + + if self._is_empty(self.communicationMethods): + self.MissingRequiredField("communicationMethods") + if not isinstance(self.communicationMethods, list): + self.communicationMethods = [self.communicationMethods] if self.communicationMethods is not None else [] + self.communicationMethods = [v if isinstance(v, str) else str(v) for v in self.communicationMethods] + + if self._is_empty(self.informationDocuments): + self.MissingRequiredField("informationDocuments") + if not isinstance(self.informationDocuments, list): + self.informationDocuments = [self.informationDocuments] if self.informationDocuments is not None else [] + self.informationDocuments = [v if isinstance(v, str) else str(v) for v in self.informationDocuments] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class SubProcessorDataTransfer(DataTransfer): + """ + Specifies data transfer to a sub-processor with associated management details. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["SubProcessorDataTransfer"] + class_class_curie: ClassVar[str] = "gx:SubProcessorDataTransfer" + class_name: ClassVar[str] = "SubProcessorDataTransfer" + class_model_uri: ClassVar[URIRef] = GX.SubProcessorDataTransfer + + reason: str = None + scope: str = None + subProcessorManagement: Union[dict, LegalDocument] = None + subProcessor: Optional[Union[str, LegalPersonRegistrationNumber]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.subProcessorManagement): + self.MissingRequiredField("subProcessorManagement") + if not isinstance(self.subProcessorManagement, LegalDocument): + self.subProcessorManagement = LegalDocument(**as_dict(self.subProcessorManagement)) + + if self.subProcessor is not None and not isinstance(self.subProcessor, LegalPersonRegistrationNumber): + self.subProcessor = LegalPersonRegistrationNumber(self.subProcessor) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ThirdCountryDataTransfer(DataTransfer): + """ + Specifies data transfer to a third country with relevant securing mechanisms. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ThirdCountryDataTransfer"] + class_class_curie: ClassVar[str] = "gx:ThirdCountryDataTransfer" + class_name: ClassVar[str] = "ThirdCountryDataTransfer" + class_model_uri: ClassVar[URIRef] = GX.ThirdCountryDataTransfer + + reason: str = None + scope: str = None + country: Union[str, "CountryNameAlpha2"] = None + securingMechanism: Union[str, List[str]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.country): + self.MissingRequiredField("country") + if not isinstance(self.country, CountryNameAlpha2): + self.country = CountryNameAlpha2(self.country) + + if self._is_empty(self.securingMechanism): + self.MissingRequiredField("securingMechanism") + if not isinstance(self.securingMechanism, list): + self.securingMechanism = [self.securingMechanism] if self.securingMechanism is not None else [] + self.securingMechanism = [v if isinstance(v, str) else str(v) for v in self.securingMechanism] + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class WaterUsageEffectiveness(YAMLRoot): + """ + Represents the effectiveness of water usage in a resource. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["WaterUsageEffectiveness"] + class_class_curie: ClassVar[str] = "gx:WaterUsageEffectiveness" + class_name: ClassVar[str] = "WaterUsageEffectiveness" + class_model_uri: ClassVar[URIRef] = GX.WaterUsageEffectiveness + + waterUsageEffectiveness: float = None + certifications: Optional[Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]] = empty_list() + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.waterUsageEffectiveness): + self.MissingRequiredField("waterUsageEffectiveness") + if not isinstance(self.waterUsageEffectiveness, float): + self.waterUsageEffectiveness = float(self.waterUsageEffectiveness) + + self._normalize_inlined_as_dict(slot_name="certifications", slot_type=LegalDocument, key_name="url", keyed=False) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ServerFlavor(InstantiationRequirement): + """ + Description of the available hardware configuration, such as processor, ram and disk capacities, of a physical or + virtual servers that can be launched. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ServerFlavor"] + class_class_curie: ClassVar[str] = "gx:ServerFlavor" + class_name: ClassVar[str] = "ServerFlavor" + class_model_uri: ClassVar[URIRef] = GX.ServerFlavor + + cpu: Union[dict, "CpuCapabilities"] = None + memory: Union[dict, "MemoryCapabilities"] = None + bootVolume: Union[dict, Disk] = None + gpu: Optional[Union[dict, GPU]] = None + network: Optional[str] = None + additionalVolume: Optional[Union[Union[dict, Disk], List[Union[dict, Disk]]]] = empty_list() + confidentialComputing: Optional[Union[dict, "ConfidentialComputing"]] = None + hypervisor: Optional[Union[dict, Hypervisor]] = None + hardwareAssistedVirtualization: Optional[Union[bool, Bool]] = False + hwRngTypeOfFlavor: Optional[Union[str, "RNGTypes"]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.cpu): + self.MissingRequiredField("cpu") + if not isinstance(self.cpu, CpuCapabilities): + self.cpu = CpuCapabilities(**as_dict(self.cpu)) + + if self._is_empty(self.memory): + self.MissingRequiredField("memory") + if not isinstance(self.memory, MemoryCapabilities): + self.memory = MemoryCapabilities(**as_dict(self.memory)) + + if self._is_empty(self.bootVolume): + self.MissingRequiredField("bootVolume") + if not isinstance(self.bootVolume, Disk): + self.bootVolume = Disk(**as_dict(self.bootVolume)) + + if self.gpu is not None and not isinstance(self.gpu, GPU): + self.gpu = GPU(**as_dict(self.gpu)) + + if self.network is not None and not isinstance(self.network, str): + self.network = str(self.network) + + self._normalize_inlined_as_dict(slot_name="additionalVolume", slot_type=Disk, key_name="diskSize", keyed=False) + + if self.confidentialComputing is not None and not isinstance(self.confidentialComputing, ConfidentialComputing): + self.confidentialComputing = ConfidentialComputing(**as_dict(self.confidentialComputing)) + + if self.hypervisor is not None and not isinstance(self.hypervisor, Hypervisor): + self.hypervisor = Hypervisor(**as_dict(self.hypervisor)) + + if self.hardwareAssistedVirtualization is not None and not isinstance(self.hardwareAssistedVirtualization, Bool): + self.hardwareAssistedVirtualization = Bool(self.hardwareAssistedVirtualization) + + if self.hwRngTypeOfFlavor is not None and not isinstance(self.hwRngTypeOfFlavor, RNGTypes): + self.hwRngTypeOfFlavor = RNGTypes(self.hwRngTypeOfFlavor) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class ConfidentialComputing(YAMLRoot): + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["ConfidentialComputing"] + class_class_curie: ClassVar[str] = "gx:ConfidentialComputing" + class_name: ClassVar[str] = "ConfidentialComputing" + class_model_uri: ClassVar[URIRef] = GX.ConfidentialComputing + + technology: str = None + attestationServiceURI: Optional[Union[str, URI]] = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.technology): + self.MissingRequiredField("technology") + if not isinstance(self.technology, str): + self.technology = str(self.technology) + + if self.attestationServiceURI is not None and not isinstance(self.attestationServiceURI, URI): + self.attestationServiceURI = URI(self.attestationServiceURI) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class CpuCapabilities(YAMLRoot): + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["CpuCapabilities"] + class_class_curie: ClassVar[str] = "gx:CpuCapabilities" + class_name: ClassVar[str] = "CpuCapabilities" + class_model_uri: ClassVar[URIRef] = GX.CpuCapabilities + + pCPU: Union[dict, CPU] = None + vCPUs: int = None + overProvisioningRatio: Optional[int] = 1 + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.pCPU): + self.MissingRequiredField("pCPU") + if not isinstance(self.pCPU, CPU): + self.pCPU = CPU(**as_dict(self.pCPU)) + + if self._is_empty(self.vCPUs): + self.MissingRequiredField("vCPUs") + if not isinstance(self.vCPUs, int): + self.vCPUs = int(self.vCPUs) + + if self.overProvisioningRatio is not None and not isinstance(self.overProvisioningRatio, int): + self.overProvisioningRatio = int(self.overProvisioningRatio) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class MemoryCapabilities(YAMLRoot): + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["MemoryCapabilities"] + class_class_curie: ClassVar[str] = "gx:MemoryCapabilities" + class_name: ClassVar[str] = "MemoryCapabilities" + class_model_uri: ClassVar[URIRef] = GX.MemoryCapabilities + + memory: Union[dict, Memory] = None + overProvisioningRatio: Optional[float] = 1 + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.memory): + self.MissingRequiredField("memory") + if not isinstance(self.memory, Memory): + self.memory = Memory(**as_dict(self.memory)) + + if self.overProvisioningRatio is not None and not isinstance(self.overProvisioningRatio, float): + self.overProvisioningRatio = float(self.overProvisioningRatio) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class AccessUsagePolicy(YAMLRoot): + """ + An access or usage policy expressed using a DSL (e.g., Rego or ODRL) (access control, throttling, usage, + retention, ...). + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["AccessUsagePolicy"] + class_class_curie: ClassVar[str] = "gx:AccessUsagePolicy" + class_name: ClassVar[str] = "AccessUsagePolicy" + class_model_uri: ClassVar[URIRef] = GX.AccessUsagePolicy + + policyLanguage: Union[str, "PolicyLanguageEnum"] = None + policyDocument: str = None + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self._is_empty(self.policyLanguage): + self.MissingRequiredField("policyLanguage") + if not isinstance(self.policyLanguage, PolicyLanguageEnum): + self.policyLanguage = PolicyLanguageEnum(self.policyLanguage) + + if self._is_empty(self.policyDocument): + self.MissingRequiredField("policyDocument") + if not isinstance(self.policyDocument, str): + self.policyDocument = str(self.policyDocument) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class VMImage(Image): + """ + Image for virtual machines. + """ + _inherited_slots: ClassVar[List[str]] = [] + + class_class_uri: ClassVar[URIRef] = GX["VMImage"] + class_class_curie: ClassVar[str] = "gx:VMImage" + class_name: ClassVar[str] = "VM_Image" + class_model_uri: ClassVar[URIRef] = GX.VMImage + + copyrightOwnedBy: Union[str, List[str]] = None + license: Union[str, List[str]] = None + resourcePolicy: Union[str, List[str]] = None + vmImageDiskFormat: Optional[Union[str, "VMDiskType"]] = "RAW" + hypervisorType: Optional[Union[str, "HypervisorType"]] = "other" + firmwareType: Optional[Union[str, "FirmType"]] = "other" + hwRngTypeOfImage: Optional[Union[str, "RNGTypes"]] = None + watchDogAction: Optional[Union[str, "WatchDogActions"]] = "disabled" + + def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): + if self.vmImageDiskFormat is not None and not isinstance(self.vmImageDiskFormat, VMDiskType): + self.vmImageDiskFormat = VMDiskType(self.vmImageDiskFormat) + + if self.hypervisorType is not None and not isinstance(self.hypervisorType, HypervisorType): + self.hypervisorType = HypervisorType(self.hypervisorType) + + if self.firmwareType is not None and not isinstance(self.firmwareType, FirmType): + self.firmwareType = FirmType(self.firmwareType) + + if self.hwRngTypeOfImage is not None and not isinstance(self.hwRngTypeOfImage, RNGTypes): + self.hwRngTypeOfImage = RNGTypes(self.hwRngTypeOfImage) + + if self.watchDogAction is not None and not isinstance(self.watchDogAction, WatchDogActions): + self.watchDogAction = WatchDogActions(self.watchDogAction) + + super().__post_init__(**kwargs) + + +# Enumerations +class ComputeFunctionDeploymentMethod(EnumDefinitionImpl): + """ + Methods for deploying compute function code. + """ + inlineEditor = PermissibleValue( + text="inlineEditor", + description="Use of the integrated code editor") + gitLab = PermissibleValue( + text="gitLab", + description="Import code from a gitLab repository") + objectStorage = PermissibleValue( + text="objectStorage", + description="Import code from an object storage bucket") + integratedRepo = PermissibleValue( + text="integratedRepo", + description="Import code from an integrated code repository service") + other = PermissibleValue( + text="other", + description="Other/Unspecified method") + + _defn = EnumDefinition( + name="ComputeFunctionDeploymentMethod", + description="Methods for deploying compute function code.", + ) + +class ComputeFunctionLanguage(EnumDefinitionImpl): + """ + Language runtime for compute function code. + """ + golang = PermissibleValue( + text="golang", + description="GO runtime") + python = PermissibleValue( + text="python", + description="Python runtime") + jre = PermissibleValue( + text="jre", + description="Java runtime") + other = PermissibleValue( + text="other", + description="Other/Unspecified language") + + _defn = EnumDefinition( + name="ComputeFunctionLanguage", + description="Language runtime for compute function code.", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "node.js", + PermissibleValue( + text="node.js", + description="Node.js runtime (javascript)")) + +class IPIType(EnumDefinitionImpl): + + Physical = PermissibleValue( + text="Physical", + description="TBD") + Link = PermissibleValue( + text="Link", + description="TBD") + URI = PermissibleValue( + text="URI", + description="TBD") + Network = PermissibleValue( + text="Network", + description="TBD") + Other = PermissibleValue( + text="Other", + description="TBD") + + _defn = EnumDefinition( + name="IPIType", + ) + +class VlanType(EnumDefinitionImpl): + + qinq = PermissibleValue( + text="qinq", + description="TBD") + dot1q = PermissibleValue( + text="dot1q", + description="TBD") + other = PermissibleValue( + text="other", + description="TBD") + + _defn = EnumDefinition( + name="VlanType", + ) + +class ContainerFormat(EnumDefinitionImpl): + """ + Possible values for container image format. + """ + dockerv1 = PermissibleValue( + text="dockerv1", + description="Container is packaged with Docker v1 format.") + dockerv2 = PermissibleValue( + text="dockerv2", + description="Container is packaged with Docker v2 format.") + oci = PermissibleValue( + text="oci", + description="Container is packaged with OCI format.") + lxc = PermissibleValue( + text="lxc", + description="Container is packaged with LXC format.") + lxd = PermissibleValue( + text="lxd", + description="Container is packaged with LXD format.") + + _defn = EnumDefinition( + name="ContainerFormat", + description="Possible values for container image format.", + ) + +class CountryNameAlpha2(EnumDefinitionImpl): + + AF = PermissibleValue( + text="AF", + description="Alpha2 code for Afghanistan.") + EG = PermissibleValue( + text="EG", + description="Alpha2 code for Egypt.") + AX = PermissibleValue( + text="AX", + description="Alpha2 code for Aland Islands.") + AL = PermissibleValue( + text="AL", + description="Alpha2 code for Albania.") + DZ = PermissibleValue( + text="DZ", + description="Alpha2 code for Algeria.") + VI = PermissibleValue( + text="VI", + description="Alpha2 code for Virgin Islands (U.S.).") + UM = PermissibleValue( + text="UM", + description="Alpha2 code for United States Minor Outlying Islands (the).") + AS = PermissibleValue( + text="AS", + description="Alpha2 code for American Samoa.") + AD = PermissibleValue( + text="AD", + description="Alpha2 code for Andorra.") + AO = PermissibleValue( + text="AO", + description="Alpha2 code for Angola.") + AI = PermissibleValue( + text="AI", + description="Alpha2 code for Anguilla.") + AQ = PermissibleValue( + text="AQ", + description="Alpha2 code for Antarctica.") + AG = PermissibleValue( + text="AG", + description="Alpha2 code for Antigua and Barbuda.") + GQ = PermissibleValue( + text="GQ", + description="Alpha2 code for Equatorial Guinea.") + SY = PermissibleValue( + text="SY", + description="Alpha2 code for Syrian Arab Republic.") + AR = PermissibleValue( + text="AR", + description="Alpha2 code for Argentina.") + AM = PermissibleValue( + text="AM", + description="Alpha2 code for Armenia.") + AW = PermissibleValue( + text="AW", + description="Alpha2 code for Aruba.") + AZ = PermissibleValue( + text="AZ", + description="Alpha2 code for Azerbaijan.") + ET = PermissibleValue( + text="ET", + description="Alpha2 code for Ethiopia.") + AU = PermissibleValue( + text="AU", + description="Alpha2 code for Australia.") + BS = PermissibleValue( + text="BS", description="Alpha2 code for Bahamas (the).") BH = PermissibleValue( text="BH", @@ -4810,1376 +7035,26306 @@ class CountryNameAlpha3(EnumDefinitionImpl): description="Alpha3 code for Kosovo.") _defn = EnumDefinition( - name="CountryNameAlpha3", + name="CountryNameAlpha3", + ) + +class CountryNameNumeric(EnumDefinitionImpl): + + _defn = EnumDefinition( + name="CountryNameNumeric", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "4", + PermissibleValue( + text="4", + description="Numeric code for Afghanistan.")) + setattr(cls, "818", + PermissibleValue( + text="818", + description="Numeric code for Egypt.")) + setattr(cls, "248", + PermissibleValue( + text="248", + description="Numeric code for Aland Islands.")) + setattr(cls, "008", + PermissibleValue( + text="008", + description="Numeric code for Albania.")) + setattr(cls, "10", + PermissibleValue( + text="10", + description="Numeric code for Algeria.")) + setattr(cls, "850", + PermissibleValue( + text="850", + description="Numeric code for Virgin Islands (U.S.).")) + setattr(cls, "581", + PermissibleValue( + text="581", + description="Numeric code for United States Minor Outlying Islands (the).")) + setattr(cls, "14", + PermissibleValue( + text="14", + description="Numeric code for American Samoa.")) + setattr(cls, "16", + PermissibleValue( + text="16", + description="Numeric code for Andorra.")) + setattr(cls, "20", + PermissibleValue( + text="20", + description="Numeric code for Angola.")) + setattr(cls, "660", + PermissibleValue( + text="660", + description="Numeric code for Anguilla.")) + setattr(cls, "8", + PermissibleValue( + text="8", + description="Numeric code for Antarctica.")) + setattr(cls, "028", + PermissibleValue( + text="028", + description="Numeric code for Antigua and Barbuda.")) + setattr(cls, "226", + PermissibleValue( + text="226", + description="Numeric code for Equatorial Guinea.")) + setattr(cls, "760", + PermissibleValue( + text="760", + description="Numeric code for Syrian Arab Republic.")) + setattr(cls, "26", + PermissibleValue( + text="26", + description="Numeric code for Argentina.")) + setattr(cls, "41", + PermissibleValue( + text="41", + description="Numeric code for Armenia.")) + setattr(cls, "231", + PermissibleValue( + text="231", + description="Numeric code for Ethiopia.")) + setattr(cls, "30", + PermissibleValue( + text="30", + description="Numeric code for Australia.")) + setattr(cls, "36", + PermissibleValue( + text="36", + description="Numeric code for Bahamas (the).")) + setattr(cls, "048", + PermissibleValue( + text="048", + description="Numeric code for Bahrain.")) + setattr(cls, "40", + PermissibleValue( + text="40", + description="Numeric code for Bangladesh.")) + setattr(cls, "42", + PermissibleValue( + text="42", + description="Numeric code for Barbados.")) + setattr(cls, "46", + PermissibleValue( + text="46", + description="Numeric code forBelgium.")) + setattr(cls, "084", + PermissibleValue( + text="084", + description="Numeric code for Belize.")) + setattr(cls, "204", + PermissibleValue( + text="204", + description="Numeric code for Benin.")) + setattr(cls, "48", + PermissibleValue( + text="48", + description="Numeric code for Bermuda.")) + setattr(cls, "52", + PermissibleValue( + text="52", + description="Numeric code for Bhutan.")) + setattr(cls, "58", + PermissibleValue( + text="58", + description="Numeric code for Botswana.")) + setattr(cls, "60", + PermissibleValue( + text="60", + description="Numeric code for Bouvet Island.")) + setattr(cls, "62", + PermissibleValue( + text="62", + description="Numeric code for Brazil.")) + setattr(cls, "092", + PermissibleValue( + text="092", + description="Numeric code for Virgin Islands (British).")) + setattr(cls, "086", + PermissibleValue( + text="086", + description="Numeric code for British Indian Ocean Territory (the).")) + setattr(cls, "854", + PermissibleValue( + text="854", + description="Numeric code for Burkina Faso.")) + setattr(cls, "108", + PermissibleValue( + text="108", + description="Numeric code for Burundi.")) + setattr(cls, "132", + PermissibleValue( + text="132", + description="Numeric code for Cabo Verde.")) + setattr(cls, "152", + PermissibleValue( + text="152", + description="Numeric code for Chile.")) + setattr(cls, "156", + PermissibleValue( + text="156", + description="Numeric code for China.")) + setattr(cls, "184", + PermissibleValue( + text="184", + description="Numeric code for Cook Islands (the).")) + setattr(cls, "188", + PermissibleValue( + text="188", + description="Numeric code for Costa Rica.")) + setattr(cls, "384", + PermissibleValue( + text="384", + description="Numeric code for Cote dIvoire.")) + setattr(cls, "531", + PermissibleValue( + text="531", + description="Numeric code for Curacao.")) + setattr(cls, "208", + PermissibleValue( + text="208", + description="Numeric code for Denmark.")) + setattr(cls, "180", + PermissibleValue( + text="180", + description="Numeric code for Congo (the Democratic Republic of the).")) + setattr(cls, "408", + PermissibleValue( + text="408", + description="Numeric code for Korea (the Democratic Peoples Republic of).")) + setattr(cls, "418", + PermissibleValue( + text="418", + description="Numeric code for Lao Peoples Democratic Republic (the).")) + setattr(cls, "276", + PermissibleValue( + text="276", + description="Numeric code for Germany.")) + setattr(cls, "212", + PermissibleValue( + text="212", + description="Numeric code for Dominica.")) + setattr(cls, "214", + PermissibleValue( + text="214", + description="Numeric code for Dominican Republic (the).")) + setattr(cls, "262", + PermissibleValue( + text="262", + description="Numeric code for Djibouti.")) + setattr(cls, "218", + PermissibleValue( + text="218", + description="Numeric code for Ecuador.")) + setattr(cls, "807", + PermissibleValue( + text="807", + description="Numeric code for Republic of North Macedonia.")) + setattr(cls, "222", + PermissibleValue( + text="222", + description="Numeric code for El Salvador.")) + setattr(cls, "232", + PermissibleValue( + text="232", + description="Numeric code for Eritrea.")) + setattr(cls, "233", + PermissibleValue( + text="233", + description="Numeric code for Estonia.")) + setattr(cls, "238", + PermissibleValue( + text="238", + description="Numeric code for Falkland Islands (the) [Malvinas].")) + setattr(cls, "234", + PermissibleValue( + text="234", + description="Numeric code for Faroe Islands (the).")) + setattr(cls, "242", + PermissibleValue( + text="242", + description="Numeric code for Fiji.")) + setattr(cls, "246", + PermissibleValue( + text="246", + description="Numeric code for Finland.")) + setattr(cls, "583", + PermissibleValue( + text="583", + description="Numeric code for Micronesia (Federated States of).")) + setattr(cls, "250", + PermissibleValue( + text="250", + description="Numeric code for France.")) + setattr(cls, "260", + PermissibleValue( + text="260", + description="Numeric code for French Southern Territories (the).")) + setattr(cls, "254", + PermissibleValue( + text="254", + description="Numeric code for French Guiana.")) + setattr(cls, "258", + PermissibleValue( + text="258", + description="Numeric code for French Polynesia.")) + setattr(cls, "266", + PermissibleValue( + text="266", + description="Numeric code for Gabon.")) + setattr(cls, "270", + PermissibleValue( + text="270", + description="Numeric code for Gambia (the).")) + setattr(cls, "268", + PermissibleValue( + text="268", + description="Numeric code for Georgia.")) + setattr(cls, "288", + PermissibleValue( + text="288", + description="Numeric code for Ghana.")) + setattr(cls, "292", + PermissibleValue( + text="292", + description="Numeric code for Gibraltar.")) + setattr(cls, "308", + PermissibleValue( + text="308", + description="Numeric code for Grenada.")) + setattr(cls, "300", + PermissibleValue( + text="300", + description="Numeric code for Greece.")) + setattr(cls, "304", + PermissibleValue( + text="304", + description="Numeric code for Greenland.")) + setattr(cls, "312", + PermissibleValue( + text="312", + description="Numeric code for Guadeloupe.")) + setattr(cls, "316", + PermissibleValue( + text="316", + description="Numeric code for Guam.")) + setattr(cls, "320", + PermissibleValue( + text="320", + description="Numeric code for Guatemala.")) + setattr(cls, "831", + PermissibleValue( + text="831", + description="Numeric code for Guernsey.")) + setattr(cls, "324", + PermissibleValue( + text="324", + description="Numeric code for Guinea.")) + setattr(cls, "624", + PermissibleValue( + text="624", + description="Numeric code for Guinea-Bissau.")) + setattr(cls, "328", + PermissibleValue( + text="328", + description="Numeric code for Guyana.")) + setattr(cls, "332", + PermissibleValue( + text="332", + description="Numeric code for Haiti.")) + setattr(cls, "334", + PermissibleValue( + text="334", + description="Numeric code for Heard Island and McDonald Islands.")) + setattr(cls, "340", + PermissibleValue( + text="340", + description="Numeric code for Honduras.")) + setattr(cls, "344", + PermissibleValue( + text="344", + description="Numeric code for Hong Kong.")) + setattr(cls, "356", + PermissibleValue( + text="356", + description="Numeric code for India.")) + setattr(cls, "360", + PermissibleValue( + text="360", + description="Numeric code for Indonesia.")) + setattr(cls, "833", + PermissibleValue( + text="833", + description="Numeric code for Isle of Man.")) + setattr(cls, "368", + PermissibleValue( + text="368", + description="Numeric code for Iraq.")) + setattr(cls, "372", + PermissibleValue( + text="372", + description="Numeric code for Ireland.")) + setattr(cls, "364", + PermissibleValue( + text="364", + description="Numeric code for Iran (Islamic Republic of).")) + setattr(cls, "352", + PermissibleValue( + text="352", + description="Numeric code for Iceland.")) + setattr(cls, "376", + PermissibleValue( + text="376", + description="Numeric code for Israel.")) + setattr(cls, "380", + PermissibleValue( + text="380", + description="Numeric code for Italy.")) + setattr(cls, "388", + PermissibleValue( + text="388", + description="Numeric code for Jamaica.")) + setattr(cls, "392", + PermissibleValue( + text="392", + description="Numeric code for Japan.")) + setattr(cls, "887", + PermissibleValue( + text="887", + description="Numeric code for Yemen.")) + setattr(cls, "832", + PermissibleValue( + text="832", + description="Numeric code for Jersey.")) + setattr(cls, "400", + PermissibleValue( + text="400", + description="Numeric code for Jordan.")) + setattr(cls, "136", + PermissibleValue( + text="136", + description="Numeric code for Cayman Islands (the).")) + setattr(cls, "116", + PermissibleValue( + text="116", + description="Numeric code for Cambodia.")) + setattr(cls, "120", + PermissibleValue( + text="120", + description="Numeric code for Cameroon.")) + setattr(cls, "124", + PermissibleValue( + text="124", + description="Numeric code for Canada.")) + setattr(cls, "398", + PermissibleValue( + text="398", + description="Numeric code for Kazakhstan.")) + setattr(cls, "634", + PermissibleValue( + text="634", + description="Numeric code for Qatar.")) + setattr(cls, "404", + PermissibleValue( + text="404", + description="Numeric code for Kenya.")) + setattr(cls, "417", + PermissibleValue( + text="417", + description="Numeric code for Kyrgyzstan.")) + setattr(cls, "296", + PermissibleValue( + text="296", + description="Numeric code for Kiribati.")) + setattr(cls, "166", + PermissibleValue( + text="166", + description="Numeric code for Cocos (Keeling) Islands (the).")) + setattr(cls, "170", + PermissibleValue( + text="170", + description="Numeric code for Colombia.")) + setattr(cls, "174", + PermissibleValue( + text="174", + description="Numeric code for Comoros (the).")) + setattr(cls, "178", + PermissibleValue( + text="178", + description="Numeric code for Congo (the).")) + setattr(cls, "191", + PermissibleValue( + text="191", + description="Numeric code for Croatia.")) + setattr(cls, "192", + PermissibleValue( + text="192", + description="Numeric code for Cuba.")) + setattr(cls, "414", + PermissibleValue( + text="414", + description="Numeric code for Kuwait.")) + setattr(cls, "426", + PermissibleValue( + text="426", + description="Numeric code for Lesotho.")) + setattr(cls, "428", + PermissibleValue( + text="428", + description="Numeric code for Latvia.")) + setattr(cls, "422", + PermissibleValue( + text="422", + description="Numeric code for Lebanon.")) + setattr(cls, "430", + PermissibleValue( + text="430", + description="Numeric code for Liberia.")) + setattr(cls, "434", + PermissibleValue( + text="434", + description="Numeric code for Libya.")) + setattr(cls, "438", + PermissibleValue( + text="438", + description="Numeric code for Liechtenstein.")) + setattr(cls, "440", + PermissibleValue( + text="440", + description="Numeric code for Lithuania.")) + setattr(cls, "442", + PermissibleValue( + text="442", + description="Numeric code for Luxembourg.")) + setattr(cls, "446", + PermissibleValue( + text="446", + description="Numeric code for Macao.")) + setattr(cls, "450", + PermissibleValue( + text="450", + description="Numeric code for Madagascar.")) + setattr(cls, "454", + PermissibleValue( + text="454", + description="Numeric code for Malawi.")) + setattr(cls, "458", + PermissibleValue( + text="458", + description="Numeric code for Malaysia.")) + setattr(cls, "462", + PermissibleValue( + text="462", + description="Numeric code for Maldives.")) + setattr(cls, "466", + PermissibleValue( + text="466", + description="Numeric code for Mali.")) + setattr(cls, "470", + PermissibleValue( + text="470", + description="Numeric code for Malta .")) + setattr(cls, "580", + PermissibleValue( + text="580", + description="Numeric code for Northern Mariana Islands (the).")) + setattr(cls, "504", + PermissibleValue( + text="504", + description="Numeric code for Morocco.")) + setattr(cls, "584", + PermissibleValue( + text="584", + description="Numeric code for Marshall Islands (the).")) + setattr(cls, "474", + PermissibleValue( + text="474", + description="Numeric code for Martinique.")) + setattr(cls, "478", + PermissibleValue( + text="478", + description="Numeric code for Mauritania.")) + setattr(cls, "480", + PermissibleValue( + text="480", + description="Numeric code for Mauritius.")) + setattr(cls, "175", + PermissibleValue( + text="175", + description="Numeric code for Mayotte.")) + setattr(cls, "484", + PermissibleValue( + text="484", + description="Numeric code for Mexico.")) + setattr(cls, "492", + PermissibleValue( + text="492", + description="Numeric code for Monaco.")) + setattr(cls, "496", + PermissibleValue( + text="496", + description="Numeric code for Mongolia.")) + setattr(cls, "500", + PermissibleValue( + text="500", + description="Numeric code for Montserrat.")) + setattr(cls, "499", + PermissibleValue( + text="499", + description="Numeric code for Montenegro.")) + setattr(cls, "508", + PermissibleValue( + text="508", + description="Numeric code for Mozambique.")) + setattr(cls, "104", + PermissibleValue( + text="104", + description="Numeric code for Myanmar.")) + setattr(cls, "516", + PermissibleValue( + text="516", + description="Numeric code for Namibia.")) + setattr(cls, "520", + PermissibleValue( + text="520", + description="Numeric code for Nauru.")) + setattr(cls, "524", + PermissibleValue( + text="524", + description="Numeric code for Nepal.")) + setattr(cls, "540", + PermissibleValue( + text="540", + description="Numeric code for New Caledonia.")) + setattr(cls, "554", + PermissibleValue( + text="554", + description="Numeric code for New Zealand.")) + setattr(cls, "558", + PermissibleValue( + text="558", + description="Numeric code for Nicaragua.")) + setattr(cls, "528", + PermissibleValue( + text="528", + description="Numeric code for Netherlands (the).")) + setattr(cls, "562", + PermissibleValue( + text="562", + description="Numeric code for Niger (the).")) + setattr(cls, "566", + PermissibleValue( + text="566", + description="Numeric code for Nigeria.")) + setattr(cls, "570", + PermissibleValue( + text="570", + description="Numeric code for Niue.")) + setattr(cls, "574", + PermissibleValue( + text="574", + description="Numeric code for Norfolk Island.")) + setattr(cls, "578", + PermissibleValue( + text="578", + description="Numeric code for Norway.")) + setattr(cls, "512", + PermissibleValue( + text="512", + description="Numeric code for Oman.")) + setattr(cls, "32", + PermissibleValue( + text="32", + description="Numeric code for Austria.")) + setattr(cls, "586", + PermissibleValue( + text="586", + description="Numeric code for Pakistan.")) + setattr(cls, "585", + PermissibleValue( + text="585", + description="Numeric code for Palau.")) + setattr(cls, "275", + PermissibleValue( + text="275", + description="Numeric code for Palestine, State of.")) + setattr(cls, "591", + PermissibleValue( + text="591", + description="Numeric code for Panama.")) + setattr(cls, "598", + PermissibleValue( + text="598", + description="Numeric code for Papua New Guinea.")) + setattr(cls, "600", + PermissibleValue( + text="600", + description="Numeric code for Paraguay.")) + setattr(cls, "604", + PermissibleValue( + text="604", + description="Numeric code for Peru.")) + setattr(cls, "608", + PermissibleValue( + text="608", + description="Numeric code for Philippines (the).")) + setattr(cls, "612", + PermissibleValue( + text="612", + description="Numeric code for Pitcairn.")) + setattr(cls, "068", + PermissibleValue( + text="068", + description="Numeric code for Bolivia (Plurinational State of).")) + setattr(cls, "616", + PermissibleValue( + text="616", + description="Numeric code for Poland.")) + setattr(cls, "620", + PermissibleValue( + text="620", + description="Numeric code for Portugal.")) + setattr(cls, "630", + PermissibleValue( + text="630", + description="Numeric code for Puerto Rico.")) + setattr(cls, "410", + PermissibleValue( + text="410", + description="Numeric code for Korea (the Republic of).")) + setattr(cls, "498", + PermissibleValue( + text="498", + description="Numeric code for Moldova (the Republic of).")) + setattr(cls, "638", + PermissibleValue( + text="638", + description="Numeric code for Reunion.")) + setattr(cls, "646", + PermissibleValue( + text="646", + description="Numeric code for Rwanda.")) + setattr(cls, "642", + PermissibleValue( + text="642", + description="Numeric code for Romania.")) + setattr(cls, "643", + PermissibleValue( + text="643", + description="Numeric code for Russian Federation (the).")) + setattr(cls, "090", + PermissibleValue( + text="090", + description="Numeric code for Solomon Islands.")) + setattr(cls, "894", + PermissibleValue( + text="894", + description="Numeric code for Zambia.")) + setattr(cls, "882", + PermissibleValue( + text="882", + description="Numeric code for Samoa.")) + setattr(cls, "674", + PermissibleValue( + text="674", + description="Numeric code for San Marino.")) + setattr(cls, "678", + PermissibleValue( + text="678", + description="Numeric code for Sao Tome and Principe.")) + setattr(cls, "682", + PermissibleValue( + text="682", + description="Numeric code for Saudi Arabia.")) + setattr(cls, "752", + PermissibleValue( + text="752", + description="Numeric code for Sweden.")) + setattr(cls, "756", + PermissibleValue( + text="756", + description="Numeric code for Switzerland.")) + setattr(cls, "686", + PermissibleValue( + text="686", + description="Numeric code for Senegal.")) + setattr(cls, "688", + PermissibleValue( + text="688", + description="Numeric code for Serbia.")) + setattr(cls, "690", + PermissibleValue( + text="690", + description="Numeric code for Seychelles.")) + setattr(cls, "694", + PermissibleValue( + text="694", + description="Numeric code for Sierra Leone.")) + setattr(cls, "716", + PermissibleValue( + text="716", + description="Numeric code for Zimbabwe.")) + setattr(cls, "702", + PermissibleValue( + text="702", + description="Numeric code for Singapore.")) + setattr(cls, "703", + PermissibleValue( + text="703", + description="Numeric code for Slovakia.")) + setattr(cls, "705", + PermissibleValue( + text="705", + description="Numeric code for Slovenia.")) + setattr(cls, "706", + PermissibleValue( + text="706", + description="Numeric code for Somalia.")) + setattr(cls, "724", + PermissibleValue( + text="724", + description="Numeric code for Spain.")) + setattr(cls, "144", + PermissibleValue( + text="144", + description="Numeric code for Sri Lanka.")) + setattr(cls, "652", + PermissibleValue( + text="652", + description="Numeric code for Saint Barthelemy.")) + setattr(cls, "654", + PermissibleValue( + text="654", + description="Numeric code for Saint Helena, Ascension and Tristan da Cunha.")) + setattr(cls, "659", + PermissibleValue( + text="659", + description="Numeric code for Saint Kitts and Nevis.")) + setattr(cls, "662", + PermissibleValue( + text="662", + description="Numeric code for Saint Lucia.")) + setattr(cls, "663", + PermissibleValue( + text="663", + description="Numeric code for Saint Martin (French part).")) + setattr(cls, "534", + PermissibleValue( + text="534", + description="Numeric code for Sint Maarten (Dutch part).")) + setattr(cls, "666", + PermissibleValue( + text="666", + description="Numeric code for Saint Pierre and Miquelon.")) + setattr(cls, "670", + PermissibleValue( + text="670", + description="Numeric code for Saint Vincent and the Grenadines.")) + setattr(cls, "710", + PermissibleValue( + text="710", + description="Numeric code for South Africa.")) + setattr(cls, "729", + PermissibleValue( + text="729", + description="Numeric code forSudan (the).")) + setattr(cls, "239", + PermissibleValue( + text="239", + description="Numeric code for South Georgia and the South Sandwich Islands.")) + setattr(cls, "728", + PermissibleValue( + text="728", + description="Numeric code for South Sudan.")) + setattr(cls, "740", + PermissibleValue( + text="740", + description="Numeric code for Suriname.")) + setattr(cls, "744", + PermissibleValue( + text="744", + description="Numeric code for Svalbard and Jan Mayen.")) + setattr(cls, "748", + PermissibleValue( + text="748", + description="Numeric code for Eswatini.")) + setattr(cls, "762", + PermissibleValue( + text="762", + description="Numeric code for Tajikistan.")) + setattr(cls, "158", + PermissibleValue( + text="158", + description="Numeric code for Taiwan (Province of China).")) + setattr(cls, "764", + PermissibleValue( + text="764", + description="Numeric code for Thailand.")) + setattr(cls, "626", + PermissibleValue( + text="626", + description="Numeric code for Timor-Leste.")) + setattr(cls, "768", + PermissibleValue( + text="768", + description="Numeric code for Togo.")) + setattr(cls, "772", + PermissibleValue( + text="772", + description="Numeric code for Tokelau.")) + setattr(cls, "776", + PermissibleValue( + text="776", + description="Numeric code for Tonga.")) + setattr(cls, "780", + PermissibleValue( + text="780", + description="Numeric code for Trinidad and Tobago.")) + setattr(cls, "148", + PermissibleValue( + text="148", + description="Numeric code for Chad.")) + setattr(cls, "203", + PermissibleValue( + text="203", + description="Numeric code for Czechia.")) + setattr(cls, "788", + PermissibleValue( + text="788", + description="Numeric code for Tunisia.")) + setattr(cls, "792", + PermissibleValue( + text="792", + description="Numeric code for Turkey.")) + setattr(cls, "795", + PermissibleValue( + text="795", + description="Numeric code for Turkmenistan.")) + setattr(cls, "796", + PermissibleValue( + text="796", + description="Numeric code for Turks and Caicos Islands (the).")) + setattr(cls, "798", + PermissibleValue( + text="798", + description="Numeric code for Tuvalu.")) + setattr(cls, "800", + PermissibleValue( + text="800", + description="Numeric code for Uganda.")) + setattr(cls, "804", + PermissibleValue( + text="804", + description="Numeric code for Ukraine.")) + setattr(cls, "348", + PermissibleValue( + text="348", + description="Numeric code for Hungary.")) + setattr(cls, "858", + PermissibleValue( + text="858", + description="Numeric code for Uruguay.")) + setattr(cls, "860", + PermissibleValue( + text="860", + description="Numeric code for Uzbekistan.")) + setattr(cls, "548", + PermissibleValue( + text="548", + description="Numeric code for Vanuatu.")) + setattr(cls, "336", + PermissibleValue( + text="336", + description="Numeric code for Holy See (the).")) + setattr(cls, "784", + PermissibleValue( + text="784", + description="Numeric code for United Arab Emirates (the).")) + setattr(cls, "834", + PermissibleValue( + text="834", + description="Numeric code for Tanzania, United Republic of.")) + setattr(cls, "840", + PermissibleValue( + text="840", + description="Numeric code for United States of America (the).")) + setattr(cls, "826", + PermissibleValue( + text="826", + description="Numeric code for United Kingdom of Great Britain and Northern Ireland (the).")) + setattr(cls, "704", + PermissibleValue( + text="704", + description="Numeric code for Viet Nam.")) + setattr(cls, "876", + PermissibleValue( + text="876", + description="Numeric code for Wallis and Futuna.")) + setattr(cls, "162", + PermissibleValue( + text="162", + description="Numeric code for Christmas Island.")) + setattr(cls, "112", + PermissibleValue( + text="112", + description="Numeric code for Belarus.")) + setattr(cls, "732", + PermissibleValue( + text="732", + description="Numeric code for Western Sahara.")) + setattr(cls, "140", + PermissibleValue( + text="140", + description="Numeric code for Central African Republic (the).")) + setattr(cls, "196", + PermissibleValue( + text="196", + description="Numeric code for Cyprus.")) + +class Architectures(EnumDefinitionImpl): + + Other = PermissibleValue( + text="Other", + description="CPU architecture not specified above.") + + _defn = EnumDefinition( + name="Architectures", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "x86-32", + PermissibleValue( + text="x86-32", + description="32 bit version of x86 architecture.")) + setattr(cls, "x86-64", + PermissibleValue( + text="x86-64", + description="64 bit version of x86 architecture.")) + setattr(cls, "AArch-32", + PermissibleValue( + text="AArch-32", + description="32-bit version of ARM architecture.")) + setattr(cls, "AArch-64", + PermissibleValue( + text="AArch-64", + description="64-bit version of ARM architecture.")) + setattr(cls, "RISC-V", + PermissibleValue( + text="RISC-V", + description="Architecture based on open standard instruction set (ISA).")) + +class CryptographicSecurityStandards(EnumDefinitionImpl): + """ + Enumerates cryptographic security standards applicable to the system. + """ + RFC9142 = PermissibleValue( + text="RFC9142", + description="RFC9142 for SSH.") + RFC5406 = PermissibleValue( + text="RFC5406", + description="RFC5406 for IPSec.") + RFC7296 = PermissibleValue( + text="RFC7296", + description="RFC7296 for IKEv2.") + RFC8446 = PermissibleValue( + text="RFC8446", + description="RFC8446 for TLS.") + RFC7515 = PermissibleValue( + text="RFC7515", + description="RFC7515 for JOSE.") + + _defn = EnumDefinition( + name="CryptographicSecurityStandards", + description="Enumerates cryptographic security standards applicable to the system.", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "FIPS186-5", + PermissibleValue( + text="FIPS186-5", + description="FIPS 186-5 for cryptographic algorithms.")) + setattr(cls, "FIPS180-4", + PermissibleValue( + text="FIPS180-4", + description="FIPS 180-4 for cryptographic hash functions.")) + +class EncryptionAlgorithm(EnumDefinitionImpl): + + RSA = PermissibleValue( + text="RSA", + description="""Algorithm for encryption based on public key cryptography (asymmetric cryptography), which uses two keys (public and private) for encoding and sending messages and data.""") + AES = PermissibleValue( + text="AES", + description="""(Advanced Encryption Standard) Algorithm for encryption based on symmetric cryptography (secret key cryptography) that works over group of bits of fixed length (blocks).""") + Blowfish = PermissibleValue( + text="Blowfish", + description="""Symmetric-key block cipher algorithm for encryption that includes advanced functionalities aimed to improve DES algorithm.""") + Twofish = PermissibleValue( + text="Twofish", + description="Evolution of the Symmetric-key block cipher Blowfish algorithm.") + SDA = PermissibleValue( + text="SDA", + description="""(Static Data Authentication) is a digital signature scheme that works with asymmetric cryptography.""") + other = PermissibleValue( + text="other", + description="Algorithm for encryption not further described.") + + _defn = EnumDefinition( + name="EncryptionAlgorithm", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "3DES", + PermissibleValue( + text="3DES", + description="""(Triple Data Encryption Algorithm) Symmetric-key block cipher algorithm for encryption, which applies three times the DES (Data Encryption Standard) algorithm to each single data block.""")) + +class ChecksumAlgorithm(EnumDefinitionImpl): + + md5 = PermissibleValue( + text="md5", + description="""(Message Digest Method 5) Algorithm that generates a 128-bit digest, represented as 32-digit hexadecimal numbers, regardless the length of the input string.""") + blake2 = PermissibleValue( + text="blake2", + description="""Improved version of the sha-3 algorithm Blake, optimized for 64-bit platforms, that generates digests of size between 1 and 64 bytes (Blake2b) or up to 32 bytes (Blake2s).""") + blake3 = PermissibleValue( + text="blake3", + description="""Evolution of Bao and Blake2, although in contrast to these, doesn't offer different variants depending on the architectures, but just a single algorithm.""") + other = PermissibleValue( + text="other", + description="Algorithm to calculate checksum not further described.") + + _defn = EnumDefinition( + name="ChecksumAlgorithm", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "sha-1", + PermissibleValue( + text="sha-1", + description="""(Secure Hash Algorithm 1) Algorithm that generates a 160-bit digest, typically represented as 40-digit hexadecimal numbers, regardless the length of the input string.""")) + setattr(cls, "sha-256", + PermissibleValue( + text="sha-256", + description="""Cryptographic algorithm that produces a fixed-length, 256-bit (32-byte) hash value. The input text should be less than 264 bits length. The algorithm is irreversible by design.""")) + setattr(cls, "sha-384", + PermissibleValue( + text="sha-384", + description="""This variant converts text of any length into a fixed-size string. Each output produces a hash of 384 bits.""")) + setattr(cls, "sha-512", + PermissibleValue( + text="sha-512", + description="""This variant converts text of any length into a fixed-size string. Each output produces a hash of 512 bits (64 bytes).""")) + setattr(cls, "sha-3", + PermissibleValue( + text="sha-3", + description="""Advanced version of the sha function, based on a sponge function approach, that generates an output bit stream of a desired length (56, 64, 96 or 128-digit hexadecimal numbers) depending of the sha-3 function version used.""")) + setattr(cls, "ripemd-160", + PermissibleValue( + text="ripemd-160", + description="""RIPEMD-160 is a hash function from the RIPEMD (RIPE Message Digest) family that generates 160-bit hashes represented as 40-digit hexadecimal numbers.""")) + +class KeyManagement(EnumDefinitionImpl): + + BYOK = PermissibleValue( + text="BYOK", + description="bring-your-own-key: Keys created by user and stored in key manager of cloud") + HYOK = PermissibleValue( + text="HYOK", + description="hold-your-own-key Key created by user and kept by user") + managed = PermissibleValue( + text="managed", + description="managed: Keys are created by and stored in key manager of cloud.") + + _defn = EnumDefinition( + name="KeyManagement", + ) + +class SignatureAlgorithm(EnumDefinitionImpl): + + DSA = PermissibleValue( + text="DSA", + description="""DSA (Digital Signature Algorithm) is an asymmetric algorithm for signing information proposed by the NIST (National Institute of Standards and Technology).""") + KCDSA = PermissibleValue( + text="KCDSA", + description="""(Korean Certificate-based Digital Signature Algorithm), created by the Korea Internet & Security Agency (KISA), is similar to the DSA algorithm and can produce and output from 128 to 256 bits, in 32-bit increments.""") + Schnorr = PermissibleValue( + text="Schnorr", + description="""Similar to ECDSA scheme was described by Claus Schnorr, is a well-known algorithm due to its simplicity and efficiency that generates short signatures.""") + ECDSA = PermissibleValue( + text="ECDSA", + description="""ECDSA (Elliptic Curve Digital Signature Algorithm) is an improved variant of the DSA algorithm which uses keys derived from elliptic curve cryptography.""") + ECKDSA = PermissibleValue( + text="ECKDSA", + description="Elliptic Curve variant of the KCDSA algorithm.") + ECGDSA = PermissibleValue( + text="ECGDSA", + description="(Elliptic Curve German Digital Signature Algorithm), variant of the ECDSA algorithm.") + other = PermissibleValue( + text="other", + description="Algorithm for digital signatures not further described.") + + _defn = EnumDefinition( + name="SignatureAlgorithm", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "RSA-Signature", + PermissibleValue( + text="RSA-Signature", + description="""RSA is a cryptographic system based on public key that can be used both for signing and encryption purposes.""")) + setattr(cls, "EC Schnorr", + PermissibleValue( + text="EC Schnorr", + description="Elliptic Curve Based Schnorr signatura algorithm.")) + +class DiskType(EnumDefinitionImpl): + + other = PermissibleValue( + text="other", + description="Storage device no further described.") + + _defn = EnumDefinition( + name="DiskType", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "local HDD", + PermissibleValue( + text="local HDD", + description="""A hard disk drive is a storage device that uses an electro-mechanical system to store and retrieve digital data.""")) + setattr(cls, "local SSD", + PermissibleValue( + text="local SSD", + description="""A SDD hard disk is a storage device that relies on flash memory technology, integrated circuits and solid-state electronics to store data.""")) + setattr(cls, "magnetic hard drive", + PermissibleValue( + text="magnetic hard drive", + description="""Storage device that uses rotating magnetic disks (platters) to read and write data into the hard drive.""")) + setattr(cls, "hybrid hard drive", + PermissibleValue( + text="hybrid hard drive", + description="""Storage device that combines both platters and flash memory, so increases both storage capabilities and storage capacity.""")) + setattr(cls, "shared network storage", + PermissibleValue( + text="shared network storage", + description="""The information is stored in a central resource that is accessible to multiple users or data systems.""")) + +class DiskBusType(EnumDefinitionImpl): + + SATA = PermissibleValue( + text="SATA", + description="""The SATA (Serial Advanced Technology Attachment) interface connects the storage device to the computer using serial signaling technology.""") + PATA = PermissibleValue( + text="PATA", + description="""Based on parallel signaling technology, the Parallel Advanced Technology Attachment (also known as IDE) interface can be used in old systems, PATA cable is usually flat and features 40-pin connectors on each side.""") + SCSI = PermissibleValue( + text="SCSI", + description="""Small Computer System Interface, uses a system interface that is a standard for connecting peripheral devices such as printers, scanners, and others.""") + SAS = PermissibleValue( + text="SAS", + description="""The Serial Attached SCSI interface provides more performance than SCSI interfaces, and it is usually convenient for environments that require high-performance data transfer.""") + NVMe = PermissibleValue( + text="NVMe", + description="""The Non-volatile Memory Express interface is designed to address tasks that require high-performance computing environments.""") + other = PermissibleValue( + text="other", + description="Disk controller no further described.") + + _defn = EnumDefinition( + name="DiskBusType", + ) + +class GPUInterconnetionTypes(EnumDefinitionImpl): + + NVLink = PermissibleValue(text="NVLink") + RoCE2 = PermissibleValue(text="RoCE2") + other = PermissibleValue(text="other") + none = PermissibleValue(text="none") + + _defn = EnumDefinition( + name="GPUInterconnetionTypes", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "Xe Link", + PermissibleValue(text="Xe Link")) + setattr(cls, "Infinity Fabric", + PermissibleValue(text="Infinity Fabric")) + +class UpdateFrequency(EnumDefinitionImpl): + """ + Possible values for image's update frequency. + """ + yearly = PermissibleValue( + text="yearly", + description="Image will be updated at least once per year.") + quarterly = PermissibleValue( + text="quarterly", + description="Image will be updated at least once per quarter.") + monthly = PermissibleValue( + text="monthly", + description="Image will be updated at least once per month.") + weekly = PermissibleValue( + text="weekly", + description="Image will be updated at least once per week.") + daily = PermissibleValue( + text="daily", + description="Image will be updated at least once per day.") + critical_bug = PermissibleValue( + text="critical_bug", + description="Image will be updated for critical bugs only.") + never = PermissibleValue( + text="never", + description="Image will never be updated.") + + _defn = EnumDefinition( + name="UpdateFrequency", + description="Possible values for image's update frequency.", + ) + +class Validity1(EnumDefinitionImpl): + """ + Possible values for definition of image's validity after upgrading to a new version. + """ + none = PermissibleValue( + text="none", + description="No information are given.") + notice = PermissibleValue( + text="notice", + description="Outdated version of the image will remain valid until a deprecation notice will be published.") + + _defn = EnumDefinition( + name="Validity1", + description="Possible values for definition of image's validity after upgrading to a new version.", + ) + +class Validity2(EnumDefinitionImpl): + """ + Possible values for definition of image's validity after upgrading to a new version. + """ + forever = PermissibleValue( + text="forever", + description="Outdated version of the image will remain valid for as long as the cloud operates.") + + _defn = EnumDefinition( + name="Validity2", + description="Possible values for definition of image's validity after upgrading to a new version.", + ) + +class GaiaXTermsAndConditions(EnumDefinitionImpl): + """ + SHA256 check sum of Gaia-X Terms and Conditions: 'The PARTICIPANT signing Gaia-X credentials agrees as follows: - + to update its Gaia-X credentials about any changes, be it technical, organizational, or legal - especially but not + limited to contractual in regards to the indicated attributes present in the Gaia-X credentials. + The keypair used to sign Gaia-X credentials will be revoked where Gaia-X Association becomes aware of any + inaccurate statements in regards to the claims which result in a non-compliance with the Trust Framework and + policy rules defined in the Policy Rules and Labelling Document (PRLD).' + """ + _defn = EnumDefinition( + name="GaiaXTermsAndConditions", + description="""SHA256 check sum of Gaia-X Terms and Conditions: 'The PARTICIPANT signing Gaia-X credentials agrees as follows: - to update its Gaia-X credentials about any changes, be it technical, organizational, or legal - especially but not limited to contractual in regards to the indicated attributes present in the Gaia-X credentials. +The keypair used to sign Gaia-X credentials will be revoked where Gaia-X Association becomes aware of any inaccurate statements in regards to the claims which result in a non-compliance with the Trust Framework and policy rules defined in the Policy Rules and Labelling Document (PRLD).'""", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "4bd7554097444c960292b4726c2efa1373485e8a5565d94d41195214c5e0ceb3", + PermissibleValue(text="4bd7554097444c960292b4726c2efa1373485e8a5565d94d41195214c5e0ceb3")) + +class ProtocolType(EnumDefinitionImpl): + + Ethernet = PermissibleValue( + text="Ethernet", + description="TBD") + ARP = PermissibleValue( + text="ARP", + description="TBD") + PPP = PermissibleValue( + text="PPP", + description="TBD") + VLAN = PermissibleValue( + text="VLAN", + description="TBD") + Other = PermissibleValue( + text="Other", + description="TBD") + + _defn = EnumDefinition( + name="ProtocolType", ) -class CountryNameNumeric(EnumDefinitionImpl): +class MemoryClasses(EnumDefinitionImpl): + + SDRAM = PermissibleValue( + text="SDRAM", + description="Synchronous DRAM, improves performance in data transfer actions through its pins.") + DDR4 = PermissibleValue( + text="DDR4", + description="""Fourth generation of the synchronous dynamic random-access memory interface, improves speed and efficiency in data transfer actions.""") + DDR5 = PermissibleValue( + text="DDR5", + description="""Fifth generation of the synchronous dynamic random-access memory interface, planned to reduce power consumption.""") + GDDR5 = PermissibleValue( + text="GDDR5", + description="""Type of memory that is also based on the DDR standard, but designed specifically to be used in graphic cards.""") + GDDR6 = PermissibleValue( + text="GDDR6", + description="Evolution of GDDR5 memory, designed for high-performance computing.") + other = PermissibleValue( + text="other", + description="Memory class no further described.") _defn = EnumDefinition( - name="CountryNameNumeric", + name="MemoryClasses", ) @classmethod def _addvals(cls): - setattr(cls, "4", + setattr(cls, "DDR SDRAM", + PermissibleValue( + text="DDR SDRAM", + description="SDRAM evolution with twice the data transmission frequency.")) + setattr(cls, "ECC DRAM", + PermissibleValue( + text="ECC DRAM", + description="This type of DRAM memory can find and even fix corrupted data.")) + +class MemoryRanks(EnumDefinitionImpl): + + other = PermissibleValue( + text="other", + description="Memory rank no further described.") + + _defn = EnumDefinition( + name="MemoryRanks", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "1R RDIMM", + PermissibleValue( + text="1R RDIMM", + description="""(Registered DIMM) A single-rank (1R) memory module contains one set of DRAM chips that is accessed during writing/reading operations.""")) + setattr(cls, "2R RDIMM", + PermissibleValue( + text="2R RDIMM", + description="""(Registered DIMM) A dual-rank (2R) memory module contains two sets of DRAM chips that are accessed during writing/reading operations.""")) + setattr(cls, "4R LRDIMM", + PermissibleValue( + text="4R LRDIMM", + description="""(Load Reduced DIMM) A quad-rank (4R) memory module contains four sets of DRAM chips that are accessed during writing/reading operations.""")) + +class MIMETypes(EnumDefinitionImpl): + + _defn = EnumDefinition( + name="MIMETypes", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "application/1d-interleaved-parityfec", + PermissibleValue(text="application/1d-interleaved-parityfec")) + setattr(cls, "application/3gpdash-qoe-report+xml", + PermissibleValue(text="application/3gpdash-qoe-report+xml")) + setattr(cls, "application/3gppHal+json", + PermissibleValue(text="application/3gppHal+json")) + setattr(cls, "application/3gppHalForms+json", + PermissibleValue(text="application/3gppHalForms+json")) + setattr(cls, "application/3gpp-ims+xml", + PermissibleValue(text="application/3gpp-ims+xml")) + setattr(cls, "application/A2L", + PermissibleValue(text="application/A2L")) + setattr(cls, "application/ace-groupcomm+cbor", + PermissibleValue(text="application/ace-groupcomm+cbor")) + setattr(cls, "application/ace+cbor", + PermissibleValue(text="application/ace+cbor")) + setattr(cls, "application/ace+json", + PermissibleValue(text="application/ace+json")) + setattr(cls, "application/activemessage", + PermissibleValue(text="application/activemessage")) + setattr(cls, "application/activity+json", + PermissibleValue(text="application/activity+json")) + setattr(cls, "application/aif+cbor", + PermissibleValue(text="application/aif+cbor")) + setattr(cls, "application/aif+json", + PermissibleValue(text="application/aif+json")) + setattr(cls, "application/alto-cdni+json", + PermissibleValue(text="application/alto-cdni+json")) + setattr(cls, "application/alto-cdnifilter+json", + PermissibleValue(text="application/alto-cdnifilter+json")) + setattr(cls, "application/alto-costmap+json", + PermissibleValue(text="application/alto-costmap+json")) + setattr(cls, "application/alto-costmapfilter+json", + PermissibleValue(text="application/alto-costmapfilter+json")) + setattr(cls, "application/alto-directory+json", + PermissibleValue(text="application/alto-directory+json")) + setattr(cls, "application/alto-endpointprop+json", + PermissibleValue(text="application/alto-endpointprop+json")) + setattr(cls, "application/alto-endpointpropparams+json", + PermissibleValue(text="application/alto-endpointpropparams+json")) + setattr(cls, "application/alto-endpointcost+json", + PermissibleValue(text="application/alto-endpointcost+json")) + setattr(cls, "application/alto-endpointcostparams+json", + PermissibleValue(text="application/alto-endpointcostparams+json")) + setattr(cls, "application/alto-error+json", + PermissibleValue(text="application/alto-error+json")) + setattr(cls, "application/alto-networkmapfilter+json", + PermissibleValue(text="application/alto-networkmapfilter+json")) + setattr(cls, "application/alto-networkmap+json", + PermissibleValue(text="application/alto-networkmap+json")) + setattr(cls, "application/alto-propmap+json", + PermissibleValue(text="application/alto-propmap+json")) + setattr(cls, "application/alto-propmapparams+json", + PermissibleValue(text="application/alto-propmapparams+json")) + setattr(cls, "application/alto-tips+json", + PermissibleValue(text="application/alto-tips+json")) + setattr(cls, "application/alto-tipsparams+json", + PermissibleValue(text="application/alto-tipsparams+json")) + setattr(cls, "application/alto-updatestreamcontrol+json", + PermissibleValue(text="application/alto-updatestreamcontrol+json")) + setattr(cls, "application/alto-updatestreamparams+json", + PermissibleValue(text="application/alto-updatestreamparams+json")) + setattr(cls, "application/AML", + PermissibleValue(text="application/AML")) + setattr(cls, "application/andrew-inset", + PermissibleValue(text="application/andrew-inset")) + setattr(cls, "application/applefile", + PermissibleValue(text="application/applefile")) + setattr(cls, "application/at+jwt", + PermissibleValue(text="application/at+jwt")) + setattr(cls, "application/ATF", + PermissibleValue(text="application/ATF")) + setattr(cls, "application/ATFX", + PermissibleValue(text="application/ATFX")) + setattr(cls, "application/atom+xml", + PermissibleValue(text="application/atom+xml")) + setattr(cls, "application/atomcat+xml", + PermissibleValue(text="application/atomcat+xml")) + setattr(cls, "application/atomdeleted+xml", + PermissibleValue(text="application/atomdeleted+xml")) + setattr(cls, "application/atomicmail", + PermissibleValue(text="application/atomicmail")) + setattr(cls, "application/atomsvc+xml", + PermissibleValue(text="application/atomsvc+xml")) + setattr(cls, "application/atsc-dwd+xml", + PermissibleValue(text="application/atsc-dwd+xml")) + setattr(cls, "application/atsc-dynamic-event-message", + PermissibleValue(text="application/atsc-dynamic-event-message")) + setattr(cls, "application/atsc-held+xml", + PermissibleValue(text="application/atsc-held+xml")) + setattr(cls, "application/atsc-rdt+json", + PermissibleValue(text="application/atsc-rdt+json")) + setattr(cls, "application/atsc-rsat+xml", + PermissibleValue(text="application/atsc-rsat+xml")) + setattr(cls, "application/ATXML", + PermissibleValue(text="application/ATXML")) + setattr(cls, "application/auth-policy+xml", + PermissibleValue(text="application/auth-policy+xml")) + setattr(cls, "application/automationml-aml+xml", + PermissibleValue(text="application/automationml-aml+xml")) + setattr(cls, "application/automationml-amlx+zip", + PermissibleValue(text="application/automationml-amlx+zip")) + setattr(cls, "application/bacnet-xdd+zip", + PermissibleValue(text="application/bacnet-xdd+zip")) + setattr(cls, "application/batch-SMTP", + PermissibleValue(text="application/batch-SMTP")) + setattr(cls, "application/beep+xml", + PermissibleValue(text="application/beep+xml")) + setattr(cls, "application/bufr", + PermissibleValue(text="application/bufr")) + setattr(cls, "application/c2pa", + PermissibleValue(text="application/c2pa")) + setattr(cls, "application/calendar+json", + PermissibleValue(text="application/calendar+json")) + setattr(cls, "application/calendar+xml", + PermissibleValue(text="application/calendar+xml")) + setattr(cls, "application/call-completion", + PermissibleValue(text="application/call-completion")) + setattr(cls, "application/CALS-1840", + PermissibleValue(text="application/CALS-1840")) + setattr(cls, "application/captive+json", + PermissibleValue(text="application/captive+json")) + setattr(cls, "application/cbor", + PermissibleValue(text="application/cbor")) + setattr(cls, "application/cbor-seq", + PermissibleValue(text="application/cbor-seq")) + setattr(cls, "application/cccex", + PermissibleValue(text="application/cccex")) + setattr(cls, "application/ccmp+xml", + PermissibleValue(text="application/ccmp+xml")) + setattr(cls, "application/ccxml+xml", + PermissibleValue(text="application/ccxml+xml")) + setattr(cls, "application/cda+xml", + PermissibleValue(text="application/cda+xml")) + setattr(cls, "application/CDFX+XML", + PermissibleValue(text="application/CDFX+XML")) + setattr(cls, "application/cdmi-capability", + PermissibleValue(text="application/cdmi-capability")) + setattr(cls, "application/cdmi-container", + PermissibleValue(text="application/cdmi-container")) + setattr(cls, "application/cdmi-domain", + PermissibleValue(text="application/cdmi-domain")) + setattr(cls, "application/cdmi-object", + PermissibleValue(text="application/cdmi-object")) + setattr(cls, "application/cdmi-queue", + PermissibleValue(text="application/cdmi-queue")) + setattr(cls, "application/cdni", + PermissibleValue(text="application/cdni")) + setattr(cls, "application/CEA", + PermissibleValue(text="application/CEA")) + setattr(cls, "application/cea-2018+xml", + PermissibleValue(text="application/cea-2018+xml")) + setattr(cls, "application/cellml+xml", + PermissibleValue(text="application/cellml+xml")) + setattr(cls, "application/cfw", + PermissibleValue(text="application/cfw")) + setattr(cls, "application/cid-edhoc+cbor-seq", + PermissibleValue(text="application/cid-edhoc+cbor-seq")) + setattr(cls, "application/city+json", + PermissibleValue(text="application/city+json")) + setattr(cls, "application/clr", + PermissibleValue(text="application/clr")) + setattr(cls, "application/clue_info+xml", + PermissibleValue(text="application/clue_info+xml")) + setattr(cls, "application/clue+xml", + PermissibleValue(text="application/clue+xml")) + setattr(cls, "application/cms", + PermissibleValue(text="application/cms")) + setattr(cls, "application/cnrp+xml", + PermissibleValue(text="application/cnrp+xml")) + setattr(cls, "application/coap-group+json", + PermissibleValue(text="application/coap-group+json")) + setattr(cls, "application/coap-payload", + PermissibleValue(text="application/coap-payload")) + setattr(cls, "application/commonground", + PermissibleValue(text="application/commonground")) + setattr(cls, "application/concise-problem-details+cbor", + PermissibleValue(text="application/concise-problem-details+cbor")) + setattr(cls, "application/conference-info+xml", + PermissibleValue(text="application/conference-info+xml")) + setattr(cls, "application/cpl+xml", + PermissibleValue(text="application/cpl+xml")) + setattr(cls, "application/cose", + PermissibleValue(text="application/cose")) + setattr(cls, "application/cose-key", + PermissibleValue(text="application/cose-key")) + setattr(cls, "application/cose-key-set", + PermissibleValue(text="application/cose-key-set")) + setattr(cls, "application/cose-x509", + PermissibleValue(text="application/cose-x509")) + setattr(cls, "application/csrattrs", + PermissibleValue(text="application/csrattrs")) + setattr(cls, "application/csta+xml", + PermissibleValue(text="application/csta+xml")) + setattr(cls, "application/CSTAdata+xml", + PermissibleValue(text="application/CSTAdata+xml")) + setattr(cls, "application/csvm+json", + PermissibleValue(text="application/csvm+json")) + setattr(cls, "application/cwl", + PermissibleValue(text="application/cwl")) + setattr(cls, "application/cwl+json", + PermissibleValue(text="application/cwl+json")) + setattr(cls, "application/cwl+yaml", + PermissibleValue(text="application/cwl+yaml")) + setattr(cls, "application/cwt", + PermissibleValue(text="application/cwt")) + setattr(cls, "application/cybercash", + PermissibleValue(text="application/cybercash")) + setattr(cls, "application/dash+xml", + PermissibleValue(text="application/dash+xml")) + setattr(cls, "application/dash-patch+xml", + PermissibleValue(text="application/dash-patch+xml")) + setattr(cls, "application/dashdelta", + PermissibleValue(text="application/dashdelta")) + setattr(cls, "application/davmount+xml", + PermissibleValue(text="application/davmount+xml")) + setattr(cls, "application/dca-rft", + PermissibleValue(text="application/dca-rft")) + setattr(cls, "application/DCD", + PermissibleValue(text="application/DCD")) + setattr(cls, "application/dec-dx", + PermissibleValue(text="application/dec-dx")) + setattr(cls, "application/dialog-info+xml", + PermissibleValue(text="application/dialog-info+xml")) + setattr(cls, "application/dicom", + PermissibleValue(text="application/dicom")) + setattr(cls, "application/dicom+json", + PermissibleValue(text="application/dicom+json")) + setattr(cls, "application/dicom+xml", + PermissibleValue(text="application/dicom+xml")) + setattr(cls, "application/DII", + PermissibleValue(text="application/DII")) + setattr(cls, "application/DIT", + PermissibleValue(text="application/DIT")) + setattr(cls, "application/dns", + PermissibleValue(text="application/dns")) + setattr(cls, "application/dns+json", + PermissibleValue(text="application/dns+json")) + setattr(cls, "application/dns-message", + PermissibleValue(text="application/dns-message")) + setattr(cls, "application/dots+cbor", + PermissibleValue(text="application/dots+cbor")) + setattr(cls, "application/dpop+jwt", + PermissibleValue(text="application/dpop+jwt")) + setattr(cls, "application/dskpp+xml", + PermissibleValue(text="application/dskpp+xml")) + setattr(cls, "application/dssc+der", + PermissibleValue(text="application/dssc+der")) + setattr(cls, "application/dssc+xml", + PermissibleValue(text="application/dssc+xml")) + setattr(cls, "application/dvcs", + PermissibleValue(text="application/dvcs")) + setattr(cls, "application/ecmascript", + PermissibleValue(text="application/ecmascript")) + setattr(cls, "application/edhoc+cbor-seq", + PermissibleValue(text="application/edhoc+cbor-seq")) + setattr(cls, "application/EDI-consent", + PermissibleValue(text="application/EDI-consent")) + setattr(cls, "application/EDIFACT", + PermissibleValue(text="application/EDIFACT")) + setattr(cls, "application/EDI-X12", + PermissibleValue(text="application/EDI-X12")) + setattr(cls, "application/efi", + PermissibleValue(text="application/efi")) + setattr(cls, "application/elm+json", + PermissibleValue(text="application/elm+json")) + setattr(cls, "application/elm+xml", + PermissibleValue(text="application/elm+xml")) + setattr(cls, "application/EmergencyCallData.cap+xml", + PermissibleValue(text="application/EmergencyCallData.cap+xml")) + setattr(cls, "application/EmergencyCallData.Comment+xml", + PermissibleValue(text="application/EmergencyCallData.Comment+xml")) + setattr(cls, "application/EmergencyCallData.Control+xml", + PermissibleValue(text="application/EmergencyCallData.Control+xml")) + setattr(cls, "application/EmergencyCallData.DeviceInfo+xml", + PermissibleValue(text="application/EmergencyCallData.DeviceInfo+xml")) + setattr(cls, "application/EmergencyCallData.eCall.MSD", + PermissibleValue(text="application/EmergencyCallData.eCall.MSD")) + setattr(cls, "application/EmergencyCallData.LegacyESN+json", + PermissibleValue(text="application/EmergencyCallData.LegacyESN+json")) + setattr(cls, "application/EmergencyCallData.ProviderInfo+xml", + PermissibleValue(text="application/EmergencyCallData.ProviderInfo+xml")) + setattr(cls, "application/EmergencyCallData.ServiceInfo+xml", + PermissibleValue(text="application/EmergencyCallData.ServiceInfo+xml")) + setattr(cls, "application/EmergencyCallData.SubscriberInfo+xml", + PermissibleValue(text="application/EmergencyCallData.SubscriberInfo+xml")) + setattr(cls, "application/EmergencyCallData.VEDS+xml", + PermissibleValue(text="application/EmergencyCallData.VEDS+xml")) + setattr(cls, "application/emma+xml", + PermissibleValue(text="application/emma+xml")) + setattr(cls, "application/emotionml+xml", + PermissibleValue(text="application/emotionml+xml")) + setattr(cls, "application/encaprtp", + PermissibleValue(text="application/encaprtp")) + setattr(cls, "application/epp+xml", + PermissibleValue(text="application/epp+xml")) + setattr(cls, "application/epub+zip", + PermissibleValue(text="application/epub+zip")) + setattr(cls, "application/eshop", + PermissibleValue(text="application/eshop")) + setattr(cls, "application/example", + PermissibleValue(text="application/example")) + setattr(cls, "application/exi", + PermissibleValue(text="application/exi")) + setattr(cls, "application/expect-ct-report+json", + PermissibleValue(text="application/expect-ct-report+json")) + setattr(cls, "application/express", + PermissibleValue(text="application/express")) + setattr(cls, "application/fastinfoset", + PermissibleValue(text="application/fastinfoset")) + setattr(cls, "application/fastsoap", + PermissibleValue(text="application/fastsoap")) + setattr(cls, "application/fdf", + PermissibleValue(text="application/fdf")) + setattr(cls, "application/fdt+xml", + PermissibleValue(text="application/fdt+xml")) + setattr(cls, "application/fhir+json", + PermissibleValue(text="application/fhir+json")) + setattr(cls, "application/fhir+xml", + PermissibleValue(text="application/fhir+xml")) + setattr(cls, "application/fits", + PermissibleValue(text="application/fits")) + setattr(cls, "application/flexfec", + PermissibleValue(text="application/flexfec")) + setattr(cls, "application/font-sfnt", + PermissibleValue(text="application/font-sfnt")) + setattr(cls, "application/font-tdpfr", + PermissibleValue(text="application/font-tdpfr")) + setattr(cls, "application/font-woff", + PermissibleValue(text="application/font-woff")) + setattr(cls, "application/framework-attributes+xml", + PermissibleValue(text="application/framework-attributes+xml")) + setattr(cls, "application/geo+json", + PermissibleValue(text="application/geo+json")) + setattr(cls, "application/geo+json-seq", + PermissibleValue(text="application/geo+json-seq")) + setattr(cls, "application/geopackage+sqlite3", + PermissibleValue(text="application/geopackage+sqlite3")) + setattr(cls, "application/geoxacml+json", + PermissibleValue(text="application/geoxacml+json")) + setattr(cls, "application/geoxacml+xml", + PermissibleValue(text="application/geoxacml+xml")) + setattr(cls, "application/gltf-buffer", + PermissibleValue(text="application/gltf-buffer")) + setattr(cls, "application/gml+xml", + PermissibleValue(text="application/gml+xml")) + setattr(cls, "application/gnap-binding-jws", + PermissibleValue(text="application/gnap-binding-jws")) + setattr(cls, "application/gnap-binding-jwsd", + PermissibleValue(text="application/gnap-binding-jwsd")) + setattr(cls, "application/gnap-binding-rotation-jws", + PermissibleValue(text="application/gnap-binding-rotation-jws")) + setattr(cls, "application/gnap-binding-rotation-jwsd", + PermissibleValue(text="application/gnap-binding-rotation-jwsd")) + setattr(cls, "application/grib", + PermissibleValue(text="application/grib")) + setattr(cls, "application/gzip", + PermissibleValue(text="application/gzip")) + setattr(cls, "application/H224", + PermissibleValue(text="application/H224")) + setattr(cls, "application/held+xml", + PermissibleValue(text="application/held+xml")) + setattr(cls, "application/hl7v2+xml", + PermissibleValue(text="application/hl7v2+xml")) + setattr(cls, "application/http", + PermissibleValue(text="application/http")) + setattr(cls, "application/hyperstudio", + PermissibleValue(text="application/hyperstudio")) + setattr(cls, "application/ibe-key-request+xml", + PermissibleValue(text="application/ibe-key-request+xml")) + setattr(cls, "application/ibe-pkg-reply+xml", + PermissibleValue(text="application/ibe-pkg-reply+xml")) + setattr(cls, "application/ibe-pp-data", + PermissibleValue(text="application/ibe-pp-data")) + setattr(cls, "application/iges", + PermissibleValue(text="application/iges")) + setattr(cls, "application/im-iscomposing+xml", + PermissibleValue(text="application/im-iscomposing+xml")) + setattr(cls, "application/index", + PermissibleValue(text="application/index")) + setattr(cls, "application/index.cmd", + PermissibleValue(text="application/index.cmd")) + setattr(cls, "application/index.obj", + PermissibleValue(text="application/index.obj")) + setattr(cls, "application/index.response", + PermissibleValue(text="application/index.response")) + setattr(cls, "application/index.vnd", + PermissibleValue(text="application/index.vnd")) + setattr(cls, "application/inkml+xml", + PermissibleValue(text="application/inkml+xml")) + setattr(cls, "application/IOTP", + PermissibleValue(text="application/IOTP")) + setattr(cls, "application/ipfix", + PermissibleValue(text="application/ipfix")) + setattr(cls, "application/ipp", + PermissibleValue(text="application/ipp")) + setattr(cls, "application/ISUP", + PermissibleValue(text="application/ISUP")) + setattr(cls, "application/its+xml", + PermissibleValue(text="application/its+xml")) + setattr(cls, "application/java-archive", + PermissibleValue(text="application/java-archive")) + setattr(cls, "application/javascript", + PermissibleValue(text="application/javascript")) + setattr(cls, "application/jf2feed+json", + PermissibleValue(text="application/jf2feed+json")) + setattr(cls, "application/jose", + PermissibleValue(text="application/jose")) + setattr(cls, "application/jose+json", + PermissibleValue(text="application/jose+json")) + setattr(cls, "application/jrd+json", + PermissibleValue(text="application/jrd+json")) + setattr(cls, "application/jscalendar+json", + PermissibleValue(text="application/jscalendar+json")) + setattr(cls, "application/jscontact+json", + PermissibleValue(text="application/jscontact+json")) + setattr(cls, "application/json", + PermissibleValue(text="application/json")) + setattr(cls, "application/json-patch+json", + PermissibleValue(text="application/json-patch+json")) + setattr(cls, "application/json-seq", + PermissibleValue(text="application/json-seq")) + setattr(cls, "application/jsonpath", + PermissibleValue(text="application/jsonpath")) + setattr(cls, "application/jwk+json", + PermissibleValue(text="application/jwk+json")) + setattr(cls, "application/jwk-set+json", + PermissibleValue(text="application/jwk-set+json")) + setattr(cls, "application/jwt", + PermissibleValue(text="application/jwt")) + setattr(cls, "application/kpml-request+xml", + PermissibleValue(text="application/kpml-request+xml")) + setattr(cls, "application/kpml-response+xml", + PermissibleValue(text="application/kpml-response+xml")) + setattr(cls, "application/ld+json", + PermissibleValue(text="application/ld+json")) + setattr(cls, "application/lgr+xml", + PermissibleValue(text="application/lgr+xml")) + setattr(cls, "application/link-format", + PermissibleValue(text="application/link-format")) + setattr(cls, "application/linkset", + PermissibleValue(text="application/linkset")) + setattr(cls, "application/linkset+json", + PermissibleValue(text="application/linkset+json")) + setattr(cls, "application/load-control+xml", + PermissibleValue(text="application/load-control+xml")) + setattr(cls, "application/logout+jwt", + PermissibleValue(text="application/logout+jwt")) + setattr(cls, "application/lost+xml", + PermissibleValue(text="application/lost+xml")) + setattr(cls, "application/lostsync+xml", + PermissibleValue(text="application/lostsync+xml")) + setattr(cls, "application/lpf+zip", + PermissibleValue(text="application/lpf+zip")) + setattr(cls, "application/LXF", + PermissibleValue(text="application/LXF")) + setattr(cls, "application/mac-binhex40", + PermissibleValue(text="application/mac-binhex40")) + setattr(cls, "application/macwriteii", + PermissibleValue(text="application/macwriteii")) + setattr(cls, "application/mads+xml", + PermissibleValue(text="application/mads+xml")) + setattr(cls, "application/manifest+json", + PermissibleValue(text="application/manifest+json")) + setattr(cls, "application/marc", + PermissibleValue(text="application/marc")) + setattr(cls, "application/marcxml+xml", + PermissibleValue(text="application/marcxml+xml")) + setattr(cls, "application/mathematica", + PermissibleValue(text="application/mathematica")) + setattr(cls, "application/mathml+xml", + PermissibleValue(text="application/mathml+xml")) + setattr(cls, "application/mathml-content+xml", + PermissibleValue(text="application/mathml-content+xml")) + setattr(cls, "application/mathml-presentation+xml", + PermissibleValue(text="application/mathml-presentation+xml")) + setattr(cls, "application/mbms-associated-procedure-description+xml", + PermissibleValue(text="application/mbms-associated-procedure-description+xml")) + setattr(cls, "application/mbms-deregister+xml", + PermissibleValue(text="application/mbms-deregister+xml")) + setattr(cls, "application/mbms-envelope+xml", + PermissibleValue(text="application/mbms-envelope+xml")) + setattr(cls, "application/mbms-msk-response+xml", + PermissibleValue(text="application/mbms-msk-response+xml")) + setattr(cls, "application/mbms-msk+xml", + PermissibleValue(text="application/mbms-msk+xml")) + setattr(cls, "application/mbms-protection-description+xml", + PermissibleValue(text="application/mbms-protection-description+xml")) + setattr(cls, "application/mbms-reception-report+xml", + PermissibleValue(text="application/mbms-reception-report+xml")) + setattr(cls, "application/mbms-register-response+xml", + PermissibleValue(text="application/mbms-register-response+xml")) + setattr(cls, "application/mbms-register+xml", + PermissibleValue(text="application/mbms-register+xml")) + setattr(cls, "application/mbms-schedule+xml", + PermissibleValue(text="application/mbms-schedule+xml")) + setattr(cls, "application/mbms-user-service-description+xml", + PermissibleValue(text="application/mbms-user-service-description+xml")) + setattr(cls, "application/mbox", + PermissibleValue(text="application/mbox")) + setattr(cls, "application/media_control+xml", + PermissibleValue(text="application/media_control+xml")) + setattr(cls, "application/media-policy-dataset+xml", + PermissibleValue(text="application/media-policy-dataset+xml")) + setattr(cls, "application/mediaservercontrol+xml", + PermissibleValue(text="application/mediaservercontrol+xml")) + setattr(cls, "application/merge-patch+json", + PermissibleValue(text="application/merge-patch+json")) + setattr(cls, "application/metalink4+xml", + PermissibleValue(text="application/metalink4+xml")) + setattr(cls, "application/mets+xml", + PermissibleValue(text="application/mets+xml")) + setattr(cls, "application/MF4", + PermissibleValue(text="application/MF4")) + setattr(cls, "application/mikey", + PermissibleValue(text="application/mikey")) + setattr(cls, "application/mipc", + PermissibleValue(text="application/mipc")) + setattr(cls, "application/missing-blocks+cbor-seq", + PermissibleValue(text="application/missing-blocks+cbor-seq")) + setattr(cls, "application/mmt-aei+xml", + PermissibleValue(text="application/mmt-aei+xml")) + setattr(cls, "application/mmt-usd+xml", + PermissibleValue(text="application/mmt-usd+xml")) + setattr(cls, "application/mods+xml", + PermissibleValue(text="application/mods+xml")) + setattr(cls, "application/moss-keys", + PermissibleValue(text="application/moss-keys")) + setattr(cls, "application/moss-signature", + PermissibleValue(text="application/moss-signature")) + setattr(cls, "application/mosskey-data", + PermissibleValue(text="application/mosskey-data")) + setattr(cls, "application/mosskey-request", + PermissibleValue(text="application/mosskey-request")) + setattr(cls, "application/mp21", + PermissibleValue(text="application/mp21")) + setattr(cls, "application/mp4", + PermissibleValue(text="application/mp4")) + setattr(cls, "application/mpeg4-generic", + PermissibleValue(text="application/mpeg4-generic")) + setattr(cls, "application/mpeg4-iod", + PermissibleValue(text="application/mpeg4-iod")) + setattr(cls, "application/mpeg4-iod-xmt", + PermissibleValue(text="application/mpeg4-iod-xmt")) + setattr(cls, "application/mrb-consumer+xml", + PermissibleValue(text="application/mrb-consumer+xml")) + setattr(cls, "application/mrb-publish+xml", + PermissibleValue(text="application/mrb-publish+xml")) + setattr(cls, "application/msc-ivr+xml", + PermissibleValue(text="application/msc-ivr+xml")) + setattr(cls, "application/msc-mixer+xml", + PermissibleValue(text="application/msc-mixer+xml")) + setattr(cls, "application/msword", + PermissibleValue(text="application/msword")) + setattr(cls, "application/mud+json", + PermissibleValue(text="application/mud+json")) + setattr(cls, "application/multipart-core", + PermissibleValue(text="application/multipart-core")) + setattr(cls, "application/mxf", + PermissibleValue(text="application/mxf")) + setattr(cls, "application/n-quads", + PermissibleValue(text="application/n-quads")) + setattr(cls, "application/n-triples", + PermissibleValue(text="application/n-triples")) + setattr(cls, "application/nasdata", + PermissibleValue(text="application/nasdata")) + setattr(cls, "application/news-checkgroups", + PermissibleValue(text="application/news-checkgroups")) + setattr(cls, "application/news-groupinfo", + PermissibleValue(text="application/news-groupinfo")) + setattr(cls, "application/news-transmission", + PermissibleValue(text="application/news-transmission")) + setattr(cls, "application/nlsml+xml", + PermissibleValue(text="application/nlsml+xml")) + setattr(cls, "application/node", + PermissibleValue(text="application/node")) + setattr(cls, "application/nss", + PermissibleValue(text="application/nss")) + setattr(cls, "application/oauth-authz-req+jwt", + PermissibleValue(text="application/oauth-authz-req+jwt")) + setattr(cls, "application/oblivious-dns-message", + PermissibleValue(text="application/oblivious-dns-message")) + setattr(cls, "application/ocsp-request", + PermissibleValue(text="application/ocsp-request")) + setattr(cls, "application/ocsp-response", + PermissibleValue(text="application/ocsp-response")) + setattr(cls, "application/octet-stream", + PermissibleValue(text="application/octet-stream")) + setattr(cls, "application/ODA", + PermissibleValue(text="application/ODA")) + setattr(cls, "application/odm+xml", + PermissibleValue(text="application/odm+xml")) + setattr(cls, "application/ODX", + PermissibleValue(text="application/ODX")) + setattr(cls, "application/oebps-package+xml", + PermissibleValue(text="application/oebps-package+xml")) + setattr(cls, "application/ogg", + PermissibleValue(text="application/ogg")) + setattr(cls, "application/ohttp-keys", + PermissibleValue(text="application/ohttp-keys")) + setattr(cls, "application/opc-nodeset+xml", + PermissibleValue(text="application/opc-nodeset+xml")) + setattr(cls, "application/oscore", + PermissibleValue(text="application/oscore")) + setattr(cls, "application/oxps", + PermissibleValue(text="application/oxps")) + setattr(cls, "application/p21", + PermissibleValue(text="application/p21")) + setattr(cls, "application/p21+zip", + PermissibleValue(text="application/p21+zip")) + setattr(cls, "application/p2p-overlay+xml", + PermissibleValue(text="application/p2p-overlay+xml")) + setattr(cls, "application/parityfec", + PermissibleValue(text="application/parityfec")) + setattr(cls, "application/passport", + PermissibleValue(text="application/passport")) + setattr(cls, "application/patch-ops-error+xml", + PermissibleValue(text="application/patch-ops-error+xml")) + setattr(cls, "application/pdf", + PermissibleValue(text="application/pdf")) + setattr(cls, "application/PDX", + PermissibleValue(text="application/PDX")) + setattr(cls, "application/pem-certificate-chain", + PermissibleValue(text="application/pem-certificate-chain")) + setattr(cls, "application/pgp-encrypted", + PermissibleValue(text="application/pgp-encrypted")) + setattr(cls, "application/pgp-keys", + PermissibleValue(text="application/pgp-keys")) + setattr(cls, "application/pgp-signature", + PermissibleValue(text="application/pgp-signature")) + setattr(cls, "application/pidf-diff+xml", + PermissibleValue(text="application/pidf-diff+xml")) + setattr(cls, "application/pidf+xml", + PermissibleValue(text="application/pidf+xml")) + setattr(cls, "application/pkcs10", + PermissibleValue(text="application/pkcs10")) + setattr(cls, "application/pkcs7-mime", + PermissibleValue(text="application/pkcs7-mime")) + setattr(cls, "application/pkcs7-signature", + PermissibleValue(text="application/pkcs7-signature")) + setattr(cls, "application/pkcs8", + PermissibleValue(text="application/pkcs8")) + setattr(cls, "application/pkcs8-encrypted", + PermissibleValue(text="application/pkcs8-encrypted")) + setattr(cls, "application/pkcs12", + PermissibleValue(text="application/pkcs12")) + setattr(cls, "application/pkix-attr-cert", + PermissibleValue(text="application/pkix-attr-cert")) + setattr(cls, "application/pkix-cert", + PermissibleValue(text="application/pkix-cert")) + setattr(cls, "application/pkix-crl", + PermissibleValue(text="application/pkix-crl")) + setattr(cls, "application/pkix-pkipath", + PermissibleValue(text="application/pkix-pkipath")) + setattr(cls, "application/pkixcmp", + PermissibleValue(text="application/pkixcmp")) + setattr(cls, "application/pls+xml", + PermissibleValue(text="application/pls+xml")) + setattr(cls, "application/poc-settings+xml", + PermissibleValue(text="application/poc-settings+xml")) + setattr(cls, "application/postscript", + PermissibleValue(text="application/postscript")) + setattr(cls, "application/ppsp-tracker+json", + PermissibleValue(text="application/ppsp-tracker+json")) + setattr(cls, "application/private-token-issuer-directory", + PermissibleValue(text="application/private-token-issuer-directory")) + setattr(cls, "application/private-token-request", + PermissibleValue(text="application/private-token-request")) + setattr(cls, "application/private-token-response", + PermissibleValue(text="application/private-token-response")) + setattr(cls, "application/problem+json", + PermissibleValue(text="application/problem+json")) + setattr(cls, "application/problem+xml", + PermissibleValue(text="application/problem+xml")) + setattr(cls, "application/provenance+xml", + PermissibleValue(text="application/provenance+xml")) + setattr(cls, "application/prs.alvestrand.titrax-sheet", + PermissibleValue(text="application/prs.alvestrand.titrax-sheet")) + setattr(cls, "application/prs.cww", + PermissibleValue(text="application/prs.cww")) + setattr(cls, "application/prs.cyn", + PermissibleValue(text="application/prs.cyn")) + setattr(cls, "application/prs.hpub+zip", + PermissibleValue(text="application/prs.hpub+zip")) + setattr(cls, "application/prs.implied-document+xml", + PermissibleValue(text="application/prs.implied-document+xml")) + setattr(cls, "application/prs.implied-executable", + PermissibleValue(text="application/prs.implied-executable")) + setattr(cls, "application/prs.implied-object+json", + PermissibleValue(text="application/prs.implied-object+json")) + setattr(cls, "application/prs.implied-object+json-seq", + PermissibleValue(text="application/prs.implied-object+json-seq")) + setattr(cls, "application/prs.implied-object+yaml", + PermissibleValue(text="application/prs.implied-object+yaml")) + setattr(cls, "application/prs.implied-structure", + PermissibleValue(text="application/prs.implied-structure")) + setattr(cls, "application/prs.nprend", + PermissibleValue(text="application/prs.nprend")) + setattr(cls, "application/prs.plucker", + PermissibleValue(text="application/prs.plucker")) + setattr(cls, "application/prs.rdf-xml-crypt", + PermissibleValue(text="application/prs.rdf-xml-crypt")) + setattr(cls, "application/prs.vcfbzip2", + PermissibleValue(text="application/prs.vcfbzip2")) + setattr(cls, "application/prs.xsf+xml", + PermissibleValue(text="application/prs.xsf+xml")) + setattr(cls, "application/pskc+xml", + PermissibleValue(text="application/pskc+xml")) + setattr(cls, "application/pvd+json", + PermissibleValue(text="application/pvd+json")) + setattr(cls, "application/rdf+xml", + PermissibleValue(text="application/rdf+xml")) + setattr(cls, "application/route-apd+xml", + PermissibleValue(text="application/route-apd+xml")) + setattr(cls, "application/route-s-tsid+xml", + PermissibleValue(text="application/route-s-tsid+xml")) + setattr(cls, "application/route-usd+xml", + PermissibleValue(text="application/route-usd+xml")) + setattr(cls, "application/QSIG", + PermissibleValue(text="application/QSIG")) + setattr(cls, "application/raptorfec", + PermissibleValue(text="application/raptorfec")) + setattr(cls, "application/rdap+json", + PermissibleValue(text="application/rdap+json")) + setattr(cls, "application/reginfo+xml", + PermissibleValue(text="application/reginfo+xml")) + setattr(cls, "application/relax-ng-compact-syntax", + PermissibleValue(text="application/relax-ng-compact-syntax")) + setattr(cls, "application/remote-printing", + PermissibleValue(text="application/remote-printing")) + setattr(cls, "application/reputon+json", + PermissibleValue(text="application/reputon+json")) + setattr(cls, "application/resource-lists-diff+xml", + PermissibleValue(text="application/resource-lists-diff+xml")) + setattr(cls, "application/resource-lists+xml", + PermissibleValue(text="application/resource-lists+xml")) + setattr(cls, "application/rfc+xml", + PermissibleValue(text="application/rfc+xml")) + setattr(cls, "application/riscos", + PermissibleValue(text="application/riscos")) + setattr(cls, "application/rlmi+xml", + PermissibleValue(text="application/rlmi+xml")) + setattr(cls, "application/rls-services+xml", + PermissibleValue(text="application/rls-services+xml")) + setattr(cls, "application/rpki-checklist", + PermissibleValue(text="application/rpki-checklist")) + setattr(cls, "application/rpki-ghostbusters", + PermissibleValue(text="application/rpki-ghostbusters")) + setattr(cls, "application/rpki-manifest", + PermissibleValue(text="application/rpki-manifest")) + setattr(cls, "application/rpki-publication", + PermissibleValue(text="application/rpki-publication")) + setattr(cls, "application/rpki-roa", + PermissibleValue(text="application/rpki-roa")) + setattr(cls, "application/rpki-signed-tal", + PermissibleValue(text="application/rpki-signed-tal")) + setattr(cls, "application/rpki-updown", + PermissibleValue(text="application/rpki-updown")) + setattr(cls, "application/rtf", + PermissibleValue(text="application/rtf")) + setattr(cls, "application/rtploopback", + PermissibleValue(text="application/rtploopback")) + setattr(cls, "application/rtx", + PermissibleValue(text="application/rtx")) + setattr(cls, "application/samlassertion+xml", + PermissibleValue(text="application/samlassertion+xml")) + setattr(cls, "application/samlmetadata+xml", + PermissibleValue(text="application/samlmetadata+xml")) + setattr(cls, "application/sarif-external-properties+json", + PermissibleValue(text="application/sarif-external-properties+json")) + setattr(cls, "application/sarif+json", + PermissibleValue(text="application/sarif+json")) + setattr(cls, "application/sbe", + PermissibleValue(text="application/sbe")) + setattr(cls, "application/sbml+xml", + PermissibleValue(text="application/sbml+xml")) + setattr(cls, "application/scaip+xml", + PermissibleValue(text="application/scaip+xml")) + setattr(cls, "application/scim+json", + PermissibleValue(text="application/scim+json")) + setattr(cls, "application/scvp-cv-request", + PermissibleValue(text="application/scvp-cv-request")) + setattr(cls, "application/scvp-cv-response", + PermissibleValue(text="application/scvp-cv-response")) + setattr(cls, "application/scvp-vp-request", + PermissibleValue(text="application/scvp-vp-request")) + setattr(cls, "application/scvp-vp-response", + PermissibleValue(text="application/scvp-vp-response")) + setattr(cls, "application/sdp", + PermissibleValue(text="application/sdp")) + setattr(cls, "application/secevent+jwt", + PermissibleValue(text="application/secevent+jwt")) + setattr(cls, "application/senml-etch+cbor", + PermissibleValue(text="application/senml-etch+cbor")) + setattr(cls, "application/senml-etch+json", + PermissibleValue(text="application/senml-etch+json")) + setattr(cls, "application/senml-exi", + PermissibleValue(text="application/senml-exi")) + setattr(cls, "application/senml+cbor", + PermissibleValue(text="application/senml+cbor")) + setattr(cls, "application/senml+json", + PermissibleValue(text="application/senml+json")) + setattr(cls, "application/senml+xml", + PermissibleValue(text="application/senml+xml")) + setattr(cls, "application/sensml-exi", + PermissibleValue(text="application/sensml-exi")) + setattr(cls, "application/sensml+cbor", + PermissibleValue(text="application/sensml+cbor")) + setattr(cls, "application/sensml+json", + PermissibleValue(text="application/sensml+json")) + setattr(cls, "application/sensml+xml", + PermissibleValue(text="application/sensml+xml")) + setattr(cls, "application/sep-exi", + PermissibleValue(text="application/sep-exi")) + setattr(cls, "application/sep+xml", + PermissibleValue(text="application/sep+xml")) + setattr(cls, "application/session-info", + PermissibleValue(text="application/session-info")) + setattr(cls, "application/set-payment", + PermissibleValue(text="application/set-payment")) + setattr(cls, "application/set-payment-initiation", + PermissibleValue(text="application/set-payment-initiation")) + setattr(cls, "application/set-registration", + PermissibleValue(text="application/set-registration")) + setattr(cls, "application/set-registration-initiation", + PermissibleValue(text="application/set-registration-initiation")) + setattr(cls, "application/SGML", + PermissibleValue(text="application/SGML")) + setattr(cls, "application/sgml-open-catalog", + PermissibleValue(text="application/sgml-open-catalog")) + setattr(cls, "application/shf+xml", + PermissibleValue(text="application/shf+xml")) + setattr(cls, "application/sieve", + PermissibleValue(text="application/sieve")) + setattr(cls, "application/simple-filter+xml", + PermissibleValue(text="application/simple-filter+xml")) + setattr(cls, "application/simple-message-summary", + PermissibleValue(text="application/simple-message-summary")) + setattr(cls, "application/simpleSymbolContainer", + PermissibleValue(text="application/simpleSymbolContainer")) + setattr(cls, "application/sipc", + PermissibleValue(text="application/sipc")) + setattr(cls, "application/slate", + PermissibleValue(text="application/slate")) + setattr(cls, "application/smil", + PermissibleValue(text="application/smil")) + setattr(cls, "application/smil+xml", + PermissibleValue(text="application/smil+xml")) + setattr(cls, "application/smpte336m", + PermissibleValue(text="application/smpte336m")) + setattr(cls, "application/soap+fastinfoset", + PermissibleValue(text="application/soap+fastinfoset")) + setattr(cls, "application/soap+xml", + PermissibleValue(text="application/soap+xml")) + setattr(cls, "application/sparql-query", + PermissibleValue(text="application/sparql-query")) + setattr(cls, "application/spdx+json", + PermissibleValue(text="application/spdx+json")) + setattr(cls, "application/sparql-results+xml", + PermissibleValue(text="application/sparql-results+xml")) + setattr(cls, "application/spirits-event+xml", + PermissibleValue(text="application/spirits-event+xml")) + setattr(cls, "application/sql", + PermissibleValue(text="application/sql")) + setattr(cls, "application/srgs", + PermissibleValue(text="application/srgs")) + setattr(cls, "application/srgs+xml", + PermissibleValue(text="application/srgs+xml")) + setattr(cls, "application/sru+xml", + PermissibleValue(text="application/sru+xml")) + setattr(cls, "application/sslkeylogfile", + PermissibleValue(text="application/sslkeylogfile")) + setattr(cls, "application/ssml+xml", + PermissibleValue(text="application/ssml+xml")) + setattr(cls, "application/ST2110-41", + PermissibleValue(text="application/ST2110-41")) + setattr(cls, "application/stix+json", + PermissibleValue(text="application/stix+json")) + setattr(cls, "application/stratum", + PermissibleValue(text="application/stratum")) + setattr(cls, "application/swid+cbor", + PermissibleValue(text="application/swid+cbor")) + setattr(cls, "application/swid+xml", + PermissibleValue(text="application/swid+xml")) + setattr(cls, "application/tamp-apex-update", + PermissibleValue(text="application/tamp-apex-update")) + setattr(cls, "application/tamp-apex-update-confirm", + PermissibleValue(text="application/tamp-apex-update-confirm")) + setattr(cls, "application/tamp-community-update", + PermissibleValue(text="application/tamp-community-update")) + setattr(cls, "application/tamp-community-update-confirm", + PermissibleValue(text="application/tamp-community-update-confirm")) + setattr(cls, "application/tamp-error", + PermissibleValue(text="application/tamp-error")) + setattr(cls, "application/tamp-sequence-adjust", + PermissibleValue(text="application/tamp-sequence-adjust")) + setattr(cls, "application/tamp-sequence-adjust-confirm", + PermissibleValue(text="application/tamp-sequence-adjust-confirm")) + setattr(cls, "application/tamp-status-query", + PermissibleValue(text="application/tamp-status-query")) + setattr(cls, "application/tamp-status-response", + PermissibleValue(text="application/tamp-status-response")) + setattr(cls, "application/tamp-update", + PermissibleValue(text="application/tamp-update")) + setattr(cls, "application/tamp-update-confirm", + PermissibleValue(text="application/tamp-update-confirm")) + setattr(cls, "application/taxii+json", + PermissibleValue(text="application/taxii+json")) + setattr(cls, "application/td+json", + PermissibleValue(text="application/td+json")) + setattr(cls, "application/tei+xml", + PermissibleValue(text="application/tei+xml")) + setattr(cls, "application/TETRA_ISI", + PermissibleValue(text="application/TETRA_ISI")) + setattr(cls, "application/thraud+xml", + PermissibleValue(text="application/thraud+xml")) + setattr(cls, "application/timestamp-query", + PermissibleValue(text="application/timestamp-query")) + setattr(cls, "application/timestamp-reply", + PermissibleValue(text="application/timestamp-reply")) + setattr(cls, "application/timestamped-data", + PermissibleValue(text="application/timestamped-data")) + setattr(cls, "application/tlsrpt+gzip", + PermissibleValue(text="application/tlsrpt+gzip")) + setattr(cls, "application/tlsrpt+json", + PermissibleValue(text="application/tlsrpt+json")) + setattr(cls, "application/tm+json", + PermissibleValue(text="application/tm+json")) + setattr(cls, "application/tnauthlist", + PermissibleValue(text="application/tnauthlist")) + setattr(cls, "application/token-introspection+jwt", + PermissibleValue(text="application/token-introspection+jwt")) + setattr(cls, "application/trickle-ice-sdpfrag", + PermissibleValue(text="application/trickle-ice-sdpfrag")) + setattr(cls, "application/trig", + PermissibleValue(text="application/trig")) + setattr(cls, "application/ttml+xml", + PermissibleValue(text="application/ttml+xml")) + setattr(cls, "application/tve-trigger", + PermissibleValue(text="application/tve-trigger")) + setattr(cls, "application/tzif", + PermissibleValue(text="application/tzif")) + setattr(cls, "application/tzif-leap", + PermissibleValue(text="application/tzif-leap")) + setattr(cls, "application/ulpfec", + PermissibleValue(text="application/ulpfec")) + setattr(cls, "application/urc-grpsheet+xml", + PermissibleValue(text="application/urc-grpsheet+xml")) + setattr(cls, "application/urc-ressheet+xml", + PermissibleValue(text="application/urc-ressheet+xml")) + setattr(cls, "application/urc-targetdesc+xml", + PermissibleValue(text="application/urc-targetdesc+xml")) + setattr(cls, "application/urc-uisocketdesc+xml", + PermissibleValue(text="application/urc-uisocketdesc+xml")) + setattr(cls, "application/vc", + PermissibleValue(text="application/vc")) + setattr(cls, "application/vcard+json", + PermissibleValue(text="application/vcard+json")) + setattr(cls, "application/vcard+xml", + PermissibleValue(text="application/vcard+xml")) + setattr(cls, "application/vemmi", + PermissibleValue(text="application/vemmi")) + setattr(cls, "application/vnd.1000minds.decision-model+xml", + PermissibleValue(text="application/vnd.1000minds.decision-model+xml")) + setattr(cls, "application/vnd.1ob", + PermissibleValue(text="application/vnd.1ob")) + setattr(cls, "application/vnd.3gpp.5gnas", + PermissibleValue(text="application/vnd.3gpp.5gnas")) + setattr(cls, "application/vnd.3gpp.5gsa2x", + PermissibleValue(text="application/vnd.3gpp.5gsa2x")) + setattr(cls, "application/vnd.3gpp.5gsa2x-local-service-information", + PermissibleValue(text="application/vnd.3gpp.5gsa2x-local-service-information")) + setattr(cls, "application/vnd.3gpp.access-transfer-events+xml", + PermissibleValue(text="application/vnd.3gpp.access-transfer-events+xml")) + setattr(cls, "application/vnd.3gpp.bsf+xml", + PermissibleValue(text="application/vnd.3gpp.bsf+xml")) + setattr(cls, "application/vnd.3gpp.crs+xml", + PermissibleValue(text="application/vnd.3gpp.crs+xml")) + setattr(cls, "application/vnd.3gpp.current-location-discovery+xml", + PermissibleValue(text="application/vnd.3gpp.current-location-discovery+xml")) + setattr(cls, "application/vnd.3gpp.GMOP+xml", + PermissibleValue(text="application/vnd.3gpp.GMOP+xml")) + setattr(cls, "application/vnd.3gpp.gtpc", + PermissibleValue(text="application/vnd.3gpp.gtpc")) + setattr(cls, "application/vnd.3gpp.interworking-data", + PermissibleValue(text="application/vnd.3gpp.interworking-data")) + setattr(cls, "application/vnd.3gpp.lpp", + PermissibleValue(text="application/vnd.3gpp.lpp")) + setattr(cls, "application/vnd.3gpp.mc-signalling-ear", + PermissibleValue(text="application/vnd.3gpp.mc-signalling-ear")) + setattr(cls, "application/vnd.3gpp.mcdata-affiliation-command+xml", + PermissibleValue(text="application/vnd.3gpp.mcdata-affiliation-command+xml")) + setattr(cls, "application/vnd.3gpp.mcdata-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcdata-info+xml")) + setattr(cls, "application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml", + PermissibleValue(text="application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml")) + setattr(cls, "application/vnd.3gpp.mcdata-payload", + PermissibleValue(text="application/vnd.3gpp.mcdata-payload")) + setattr(cls, "application/vnd.3gpp.mcdata-regroup+xml", + PermissibleValue(text="application/vnd.3gpp.mcdata-regroup+xml")) + setattr(cls, "application/vnd.3gpp.mcdata-service-config+xml", + PermissibleValue(text="application/vnd.3gpp.mcdata-service-config+xml")) + setattr(cls, "application/vnd.3gpp.mcdata-signalling", + PermissibleValue(text="application/vnd.3gpp.mcdata-signalling")) + setattr(cls, "application/vnd.3gpp.mcdata-ue-config+xml", + PermissibleValue(text="application/vnd.3gpp.mcdata-ue-config+xml")) + setattr(cls, "application/vnd.3gpp.mcdata-user-profile+xml", + PermissibleValue(text="application/vnd.3gpp.mcdata-user-profile+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-affiliation-command+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-affiliation-command+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-floor-request+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-floor-request+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-info+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-location-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-location-info+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-mbms-usage-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-mbms-usage-info+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-regroup+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-regroup+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-service-config+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-service-config+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-signed+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-signed+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-ue-config+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-ue-config+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-ue-init-config+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-ue-init-config+xml")) + setattr(cls, "application/vnd.3gpp.mcptt-user-profile+xml", + PermissibleValue(text="application/vnd.3gpp.mcptt-user-profile+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-affiliation-command+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-affiliation-command+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-affiliation-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-affiliation-info+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-info+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-location-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-location-info+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-mbms-usage-info+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-mbms-usage-info+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-regroup+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-regroup+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-service-config+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-service-config+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-transmission-request+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-transmission-request+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-ue-config+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-ue-config+xml")) + setattr(cls, "application/vnd.3gpp.mcvideo-user-profile+xml", + PermissibleValue(text="application/vnd.3gpp.mcvideo-user-profile+xml")) + setattr(cls, "application/vnd.3gpp.mid-call+xml", + PermissibleValue(text="application/vnd.3gpp.mid-call+xml")) + setattr(cls, "application/vnd.3gpp.ngap", + PermissibleValue(text="application/vnd.3gpp.ngap")) + setattr(cls, "application/vnd.3gpp.pfcp", + PermissibleValue(text="application/vnd.3gpp.pfcp")) + setattr(cls, "application/vnd.3gpp.pic-bw-large", + PermissibleValue(text="application/vnd.3gpp.pic-bw-large")) + setattr(cls, "application/vnd.3gpp.pic-bw-small", + PermissibleValue(text="application/vnd.3gpp.pic-bw-small")) + setattr(cls, "application/vnd.3gpp.pic-bw-var", + PermissibleValue(text="application/vnd.3gpp.pic-bw-var")) + setattr(cls, "application/vnd.3gpp.pinapp-info+xml", + PermissibleValue(text="application/vnd.3gpp.pinapp-info+xml")) + setattr(cls, "application/vnd.3gpp-prose-pc3a+xml", + PermissibleValue(text="application/vnd.3gpp-prose-pc3a+xml")) + setattr(cls, "application/vnd.3gpp-prose-pc3ach+xml", + PermissibleValue(text="application/vnd.3gpp-prose-pc3ach+xml")) + setattr(cls, "application/vnd.3gpp-prose-pc3ch+xml", + PermissibleValue(text="application/vnd.3gpp-prose-pc3ch+xml")) + setattr(cls, "application/vnd.3gpp-prose-pc8+xml", + PermissibleValue(text="application/vnd.3gpp-prose-pc8+xml")) + setattr(cls, "application/vnd.3gpp-prose+xml", + PermissibleValue(text="application/vnd.3gpp-prose+xml")) + setattr(cls, "application/vnd.3gpp.s1ap", + PermissibleValue(text="application/vnd.3gpp.s1ap")) + setattr(cls, "application/vnd.3gpp.seal-group-doc+xml", + PermissibleValue(text="application/vnd.3gpp.seal-group-doc+xml")) + setattr(cls, "application/vnd.3gpp.seal-info+xml", + PermissibleValue(text="application/vnd.3gpp.seal-info+xml")) + setattr(cls, "application/vnd.3gpp.seal-location-info+xml", + PermissibleValue(text="application/vnd.3gpp.seal-location-info+xml")) + setattr(cls, "application/vnd.3gpp.seal-mbms-usage-info+xml", + PermissibleValue(text="application/vnd.3gpp.seal-mbms-usage-info+xml")) + setattr(cls, "application/vnd.3gpp.seal-network-QoS-management-info+xml", + PermissibleValue(text="application/vnd.3gpp.seal-network-QoS-management-info+xml")) + setattr(cls, "application/vnd.3gpp.seal-ue-config-info+xml", + PermissibleValue(text="application/vnd.3gpp.seal-ue-config-info+xml")) + setattr(cls, "application/vnd.3gpp.seal-unicast-info+xml", + PermissibleValue(text="application/vnd.3gpp.seal-unicast-info+xml")) + setattr(cls, "application/vnd.3gpp.seal-user-profile-info+xml", + PermissibleValue(text="application/vnd.3gpp.seal-user-profile-info+xml")) + setattr(cls, "application/vnd.3gpp.sms", + PermissibleValue(text="application/vnd.3gpp.sms")) + setattr(cls, "application/vnd.3gpp.sms+xml", + PermissibleValue(text="application/vnd.3gpp.sms+xml")) + setattr(cls, "application/vnd.3gpp.srvcc-ext+xml", + PermissibleValue(text="application/vnd.3gpp.srvcc-ext+xml")) + setattr(cls, "application/vnd.3gpp.SRVCC-info+xml", + PermissibleValue(text="application/vnd.3gpp.SRVCC-info+xml")) + setattr(cls, "application/vnd.3gpp.state-and-event-info+xml", + PermissibleValue(text="application/vnd.3gpp.state-and-event-info+xml")) + setattr(cls, "application/vnd.3gpp.ussd+xml", + PermissibleValue(text="application/vnd.3gpp.ussd+xml")) + setattr(cls, "application/vnd.3gpp.vae-info+xml", + PermissibleValue(text="application/vnd.3gpp.vae-info+xml")) + setattr(cls, "application/vnd.3gpp-v2x-local-service-information", + PermissibleValue(text="application/vnd.3gpp-v2x-local-service-information")) + setattr(cls, "application/vnd.3gpp2.bcmcsinfo+xml", + PermissibleValue(text="application/vnd.3gpp2.bcmcsinfo+xml")) + setattr(cls, "application/vnd.3gpp2.sms", + PermissibleValue(text="application/vnd.3gpp2.sms")) + setattr(cls, "application/vnd.3gpp2.tcap", + PermissibleValue(text="application/vnd.3gpp2.tcap")) + setattr(cls, "application/vnd.3gpp.v2x", + PermissibleValue(text="application/vnd.3gpp.v2x")) + setattr(cls, "application/vnd.3lightssoftware.imagescal", + PermissibleValue(text="application/vnd.3lightssoftware.imagescal")) + setattr(cls, "application/vnd.3M.Post-it-Notes", + PermissibleValue(text="application/vnd.3M.Post-it-Notes")) + setattr(cls, "application/vnd.accpac.simply.aso", + PermissibleValue(text="application/vnd.accpac.simply.aso")) + setattr(cls, "application/vnd.accpac.simply.imp", + PermissibleValue(text="application/vnd.accpac.simply.imp")) + setattr(cls, "application/vnd.acm.addressxfer+json", + PermissibleValue(text="application/vnd.acm.addressxfer+json")) + setattr(cls, "application/vnd.acm.chatbot+json", + PermissibleValue(text="application/vnd.acm.chatbot+json")) + setattr(cls, "application/vnd.acucobol", + PermissibleValue(text="application/vnd.acucobol")) + setattr(cls, "application/vnd.acucorp", + PermissibleValue(text="application/vnd.acucorp")) + setattr(cls, "application/vnd.adobe.flash.movie", + PermissibleValue(text="application/vnd.adobe.flash.movie")) + setattr(cls, "application/vnd.adobe.formscentral.fcdt", + PermissibleValue(text="application/vnd.adobe.formscentral.fcdt")) + setattr(cls, "application/vnd.adobe.fxp", + PermissibleValue(text="application/vnd.adobe.fxp")) + setattr(cls, "application/vnd.adobe.partial-upload", + PermissibleValue(text="application/vnd.adobe.partial-upload")) + setattr(cls, "application/vnd.adobe.xdp+xml", + PermissibleValue(text="application/vnd.adobe.xdp+xml")) + setattr(cls, "application/vnd.aether.imp", + PermissibleValue(text="application/vnd.aether.imp")) + setattr(cls, "application/vnd.afpc.afplinedata", + PermissibleValue(text="application/vnd.afpc.afplinedata")) + setattr(cls, "application/vnd.afpc.afplinedata-pagedef", + PermissibleValue(text="application/vnd.afpc.afplinedata-pagedef")) + setattr(cls, "application/vnd.afpc.cmoca-cmresource", + PermissibleValue(text="application/vnd.afpc.cmoca-cmresource")) + setattr(cls, "application/vnd.afpc.foca-charset", + PermissibleValue(text="application/vnd.afpc.foca-charset")) + setattr(cls, "application/vnd.afpc.foca-codedfont", + PermissibleValue(text="application/vnd.afpc.foca-codedfont")) + setattr(cls, "application/vnd.afpc.foca-codepage", + PermissibleValue(text="application/vnd.afpc.foca-codepage")) + setattr(cls, "application/vnd.afpc.modca", + PermissibleValue(text="application/vnd.afpc.modca")) + setattr(cls, "application/vnd.afpc.modca-cmtable", + PermissibleValue(text="application/vnd.afpc.modca-cmtable")) + setattr(cls, "application/vnd.afpc.modca-formdef", + PermissibleValue(text="application/vnd.afpc.modca-formdef")) + setattr(cls, "application/vnd.afpc.modca-mediummap", + PermissibleValue(text="application/vnd.afpc.modca-mediummap")) + setattr(cls, "application/vnd.afpc.modca-objectcontainer", + PermissibleValue(text="application/vnd.afpc.modca-objectcontainer")) + setattr(cls, "application/vnd.afpc.modca-overlay", + PermissibleValue(text="application/vnd.afpc.modca-overlay")) + setattr(cls, "application/vnd.afpc.modca-pagesegment", + PermissibleValue(text="application/vnd.afpc.modca-pagesegment")) + setattr(cls, "application/vnd.age", + PermissibleValue(text="application/vnd.age")) + setattr(cls, "application/vnd.ah-barcode", + PermissibleValue(text="application/vnd.ah-barcode")) + setattr(cls, "application/vnd.ahead.space", + PermissibleValue(text="application/vnd.ahead.space")) + setattr(cls, "application/vnd.airzip.filesecure.azf", + PermissibleValue(text="application/vnd.airzip.filesecure.azf")) + setattr(cls, "application/vnd.airzip.filesecure.azs", + PermissibleValue(text="application/vnd.airzip.filesecure.azs")) + setattr(cls, "application/vnd.amadeus+json", + PermissibleValue(text="application/vnd.amadeus+json")) + setattr(cls, "application/vnd.amazon.mobi8-ebook", + PermissibleValue(text="application/vnd.amazon.mobi8-ebook")) + setattr(cls, "application/vnd.americandynamics.acc", + PermissibleValue(text="application/vnd.americandynamics.acc")) + setattr(cls, "application/vnd.amiga.ami", + PermissibleValue(text="application/vnd.amiga.ami")) + setattr(cls, "application/vnd.amundsen.maze+xml", + PermissibleValue(text="application/vnd.amundsen.maze+xml")) + setattr(cls, "application/vnd.android.ota", + PermissibleValue(text="application/vnd.android.ota")) + setattr(cls, "application/vnd.anki", + PermissibleValue(text="application/vnd.anki")) + setattr(cls, "application/vnd.anser-web-certificate-issue-initiation", + PermissibleValue(text="application/vnd.anser-web-certificate-issue-initiation")) + setattr(cls, "application/vnd.antix.game-component", + PermissibleValue(text="application/vnd.antix.game-component")) + setattr(cls, "application/vnd.apache.arrow.file", + PermissibleValue(text="application/vnd.apache.arrow.file")) + setattr(cls, "application/vnd.apache.arrow.stream", + PermissibleValue(text="application/vnd.apache.arrow.stream")) + setattr(cls, "application/vnd.apache.parquet", + PermissibleValue(text="application/vnd.apache.parquet")) + setattr(cls, "application/vnd.apache.thrift.binary", + PermissibleValue(text="application/vnd.apache.thrift.binary")) + setattr(cls, "application/vnd.apache.thrift.compact", + PermissibleValue(text="application/vnd.apache.thrift.compact")) + setattr(cls, "application/vnd.apache.thrift.json", + PermissibleValue(text="application/vnd.apache.thrift.json")) + setattr(cls, "application/vnd.apexlang", + PermissibleValue(text="application/vnd.apexlang")) + setattr(cls, "application/vnd.api+json", + PermissibleValue(text="application/vnd.api+json")) + setattr(cls, "application/vnd.aplextor.warrp+json", + PermissibleValue(text="application/vnd.aplextor.warrp+json")) + setattr(cls, "application/vnd.apothekende.reservation+json", + PermissibleValue(text="application/vnd.apothekende.reservation+json")) + setattr(cls, "application/vnd.apple.installer+xml", + PermissibleValue(text="application/vnd.apple.installer+xml")) + setattr(cls, "application/vnd.apple.keynote", + PermissibleValue(text="application/vnd.apple.keynote")) + setattr(cls, "application/vnd.apple.mpegurl", + PermissibleValue(text="application/vnd.apple.mpegurl")) + setattr(cls, "application/vnd.apple.numbers", + PermissibleValue(text="application/vnd.apple.numbers")) + setattr(cls, "application/vnd.apple.pages", + PermissibleValue(text="application/vnd.apple.pages")) + setattr(cls, "application/vnd.arastra.swi", + PermissibleValue(text="application/vnd.arastra.swi")) + setattr(cls, "application/vnd.aristanetworks.swi", + PermissibleValue(text="application/vnd.aristanetworks.swi")) + setattr(cls, "application/vnd.artisan+json", + PermissibleValue(text="application/vnd.artisan+json")) + setattr(cls, "application/vnd.artsquare", + PermissibleValue(text="application/vnd.artsquare")) + setattr(cls, "application/vnd.astraea-software.iota", + PermissibleValue(text="application/vnd.astraea-software.iota")) + setattr(cls, "application/vnd.audiograph", + PermissibleValue(text="application/vnd.audiograph")) + setattr(cls, "application/vnd.autopackage", + PermissibleValue(text="application/vnd.autopackage")) + setattr(cls, "application/vnd.avalon+json", + PermissibleValue(text="application/vnd.avalon+json")) + setattr(cls, "application/vnd.avistar+xml", + PermissibleValue(text="application/vnd.avistar+xml")) + setattr(cls, "application/vnd.balsamiq.bmml+xml", + PermissibleValue(text="application/vnd.balsamiq.bmml+xml")) + setattr(cls, "application/vnd.banana-accounting", + PermissibleValue(text="application/vnd.banana-accounting")) + setattr(cls, "application/vnd.bbf.usp.error", + PermissibleValue(text="application/vnd.bbf.usp.error")) + setattr(cls, "application/vnd.bbf.usp.msg", + PermissibleValue(text="application/vnd.bbf.usp.msg")) + setattr(cls, "application/vnd.bbf.usp.msg+json", + PermissibleValue(text="application/vnd.bbf.usp.msg+json")) + setattr(cls, "application/vnd.balsamiq.bmpr", + PermissibleValue(text="application/vnd.balsamiq.bmpr")) + setattr(cls, "application/vnd.bekitzur-stech+json", + PermissibleValue(text="application/vnd.bekitzur-stech+json")) + setattr(cls, "application/vnd.belightsoft.lhzd+zip", + PermissibleValue(text="application/vnd.belightsoft.lhzd+zip")) + setattr(cls, "application/vnd.belightsoft.lhzl+zip", + PermissibleValue(text="application/vnd.belightsoft.lhzl+zip")) + setattr(cls, "application/vnd.bint.med-content", + PermissibleValue(text="application/vnd.bint.med-content")) + setattr(cls, "application/vnd.biopax.rdf+xml", + PermissibleValue(text="application/vnd.biopax.rdf+xml")) + setattr(cls, "application/vnd.blink-idb-value-wrapper", + PermissibleValue(text="application/vnd.blink-idb-value-wrapper")) + setattr(cls, "application/vnd.blueice.multipass", + PermissibleValue(text="application/vnd.blueice.multipass")) + setattr(cls, "application/vnd.bluetooth.ep.oob", + PermissibleValue(text="application/vnd.bluetooth.ep.oob")) + setattr(cls, "application/vnd.bluetooth.le.oob", + PermissibleValue(text="application/vnd.bluetooth.le.oob")) + setattr(cls, "application/vnd.bmi", + PermissibleValue(text="application/vnd.bmi")) + setattr(cls, "application/vnd.bpf", + PermissibleValue(text="application/vnd.bpf")) + setattr(cls, "application/vnd.bpf3", + PermissibleValue(text="application/vnd.bpf3")) + setattr(cls, "application/vnd.businessobjects", + PermissibleValue(text="application/vnd.businessobjects")) + setattr(cls, "application/vnd.byu.uapi+json", + PermissibleValue(text="application/vnd.byu.uapi+json")) + setattr(cls, "application/vnd.bzip3", + PermissibleValue(text="application/vnd.bzip3")) + setattr(cls, "application/vnd.c3voc.schedule+xml", + PermissibleValue(text="application/vnd.c3voc.schedule+xml")) + setattr(cls, "application/vnd.cab-jscript", + PermissibleValue(text="application/vnd.cab-jscript")) + setattr(cls, "application/vnd.canon-cpdl", + PermissibleValue(text="application/vnd.canon-cpdl")) + setattr(cls, "application/vnd.canon-lips", + PermissibleValue(text="application/vnd.canon-lips")) + setattr(cls, "application/vnd.capasystems-pg+json", + PermissibleValue(text="application/vnd.capasystems-pg+json")) + setattr(cls, "application/vnd.cendio.thinlinc.clientconf", + PermissibleValue(text="application/vnd.cendio.thinlinc.clientconf")) + setattr(cls, "application/vnd.century-systems.tcp_stream", + PermissibleValue(text="application/vnd.century-systems.tcp_stream")) + setattr(cls, "application/vnd.chemdraw+xml", + PermissibleValue(text="application/vnd.chemdraw+xml")) + setattr(cls, "application/vnd.chess-pgn", + PermissibleValue(text="application/vnd.chess-pgn")) + setattr(cls, "application/vnd.chipnuts.karaoke-mmd", + PermissibleValue(text="application/vnd.chipnuts.karaoke-mmd")) + setattr(cls, "application/vnd.ciedi", + PermissibleValue(text="application/vnd.ciedi")) + setattr(cls, "application/vnd.cinderella", + PermissibleValue(text="application/vnd.cinderella")) + setattr(cls, "application/vnd.cirpack.isdn-ext", + PermissibleValue(text="application/vnd.cirpack.isdn-ext")) + setattr(cls, "application/vnd.citationstyles.style+xml", + PermissibleValue(text="application/vnd.citationstyles.style+xml")) + setattr(cls, "application/vnd.claymore", + PermissibleValue(text="application/vnd.claymore")) + setattr(cls, "application/vnd.cloanto.rp9", + PermissibleValue(text="application/vnd.cloanto.rp9")) + setattr(cls, "application/vnd.clonk.c4group", + PermissibleValue(text="application/vnd.clonk.c4group")) + setattr(cls, "application/vnd.cluetrust.cartomobile-config", + PermissibleValue(text="application/vnd.cluetrust.cartomobile-config")) + setattr(cls, "application/vnd.cluetrust.cartomobile-config-pkg", + PermissibleValue(text="application/vnd.cluetrust.cartomobile-config-pkg")) + setattr(cls, "application/vnd.cncf.helm.chart.content.v1.tar+gzip", + PermissibleValue(text="application/vnd.cncf.helm.chart.content.v1.tar+gzip")) + setattr(cls, "application/vnd.cncf.helm.chart.provenance.v1.prov", + PermissibleValue(text="application/vnd.cncf.helm.chart.provenance.v1.prov")) + setattr(cls, "application/vnd.cncf.helm.config.v1+json", + PermissibleValue(text="application/vnd.cncf.helm.config.v1+json")) + setattr(cls, "application/vnd.coffeescript", + PermissibleValue(text="application/vnd.coffeescript")) + setattr(cls, "application/vnd.collabio.xodocuments.document", + PermissibleValue(text="application/vnd.collabio.xodocuments.document")) + setattr(cls, "application/vnd.collabio.xodocuments.document-template", + PermissibleValue(text="application/vnd.collabio.xodocuments.document-template")) + setattr(cls, "application/vnd.collabio.xodocuments.presentation", + PermissibleValue(text="application/vnd.collabio.xodocuments.presentation")) + setattr(cls, "application/vnd.collabio.xodocuments.presentation-template", + PermissibleValue(text="application/vnd.collabio.xodocuments.presentation-template")) + setattr(cls, "application/vnd.collabio.xodocuments.spreadsheet", + PermissibleValue(text="application/vnd.collabio.xodocuments.spreadsheet")) + setattr(cls, "application/vnd.collabio.xodocuments.spreadsheet-template", + PermissibleValue(text="application/vnd.collabio.xodocuments.spreadsheet-template")) + setattr(cls, "application/vnd.collection.doc+json", + PermissibleValue(text="application/vnd.collection.doc+json")) + setattr(cls, "application/vnd.collection+json", + PermissibleValue(text="application/vnd.collection+json")) + setattr(cls, "application/vnd.collection.next+json", + PermissibleValue(text="application/vnd.collection.next+json")) + setattr(cls, "application/vnd.comicbook-rar", + PermissibleValue(text="application/vnd.comicbook-rar")) + setattr(cls, "application/vnd.comicbook+zip", + PermissibleValue(text="application/vnd.comicbook+zip")) + setattr(cls, "application/vnd.commerce-battelle", + PermissibleValue(text="application/vnd.commerce-battelle")) + setattr(cls, "application/vnd.commonspace", + PermissibleValue(text="application/vnd.commonspace")) + setattr(cls, "application/vnd.coreos.ignition+json", + PermissibleValue(text="application/vnd.coreos.ignition+json")) + setattr(cls, "application/vnd.cosmocaller", + PermissibleValue(text="application/vnd.cosmocaller")) + setattr(cls, "application/vnd.contact.cmsg", + PermissibleValue(text="application/vnd.contact.cmsg")) + setattr(cls, "application/vnd.crick.clicker", + PermissibleValue(text="application/vnd.crick.clicker")) + setattr(cls, "application/vnd.crick.clicker.keyboard", + PermissibleValue(text="application/vnd.crick.clicker.keyboard")) + setattr(cls, "application/vnd.crick.clicker.palette", + PermissibleValue(text="application/vnd.crick.clicker.palette")) + setattr(cls, "application/vnd.crick.clicker.template", + PermissibleValue(text="application/vnd.crick.clicker.template")) + setattr(cls, "application/vnd.crick.clicker.wordbank", + PermissibleValue(text="application/vnd.crick.clicker.wordbank")) + setattr(cls, "application/vnd.criticaltools.wbs+xml", + PermissibleValue(text="application/vnd.criticaltools.wbs+xml")) + setattr(cls, "application/vnd.cryptii.pipe+json", + PermissibleValue(text="application/vnd.cryptii.pipe+json")) + setattr(cls, "application/vnd.crypto-shade-file", + PermissibleValue(text="application/vnd.crypto-shade-file")) + setattr(cls, "application/vnd.cryptomator.encrypted", + PermissibleValue(text="application/vnd.cryptomator.encrypted")) + setattr(cls, "application/vnd.cryptomator.vault", + PermissibleValue(text="application/vnd.cryptomator.vault")) + setattr(cls, "application/vnd.ctc-posml", + PermissibleValue(text="application/vnd.ctc-posml")) + setattr(cls, "application/vnd.ctct.ws+xml", + PermissibleValue(text="application/vnd.ctct.ws+xml")) + setattr(cls, "application/vnd.cups-pdf", + PermissibleValue(text="application/vnd.cups-pdf")) + setattr(cls, "application/vnd.cups-postscript", + PermissibleValue(text="application/vnd.cups-postscript")) + setattr(cls, "application/vnd.cups-ppd", + PermissibleValue(text="application/vnd.cups-ppd")) + setattr(cls, "application/vnd.cups-raster", + PermissibleValue(text="application/vnd.cups-raster")) + setattr(cls, "application/vnd.cups-raw", + PermissibleValue(text="application/vnd.cups-raw")) + setattr(cls, "application/vnd.curl", + PermissibleValue(text="application/vnd.curl")) + setattr(cls, "application/vnd.cyan.dean.root+xml", + PermissibleValue(text="application/vnd.cyan.dean.root+xml")) + setattr(cls, "application/vnd.cybank", + PermissibleValue(text="application/vnd.cybank")) + setattr(cls, "application/vnd.cyclonedx+json", + PermissibleValue(text="application/vnd.cyclonedx+json")) + setattr(cls, "application/vnd.cyclonedx+xml", + PermissibleValue(text="application/vnd.cyclonedx+xml")) + setattr(cls, "application/vnd.d2l.coursepackage1p0+zip", + PermissibleValue(text="application/vnd.d2l.coursepackage1p0+zip")) + setattr(cls, "application/vnd.d3m-dataset", + PermissibleValue(text="application/vnd.d3m-dataset")) + setattr(cls, "application/vnd.d3m-problem", + PermissibleValue(text="application/vnd.d3m-problem")) + setattr(cls, "application/vnd.dart", + PermissibleValue(text="application/vnd.dart")) + setattr(cls, "application/vnd.data-vision.rdz", + PermissibleValue(text="application/vnd.data-vision.rdz")) + setattr(cls, "application/vnd.datalog", + PermissibleValue(text="application/vnd.datalog")) + setattr(cls, "application/vnd.datapackage+json", + PermissibleValue(text="application/vnd.datapackage+json")) + setattr(cls, "application/vnd.dataresource+json", + PermissibleValue(text="application/vnd.dataresource+json")) + setattr(cls, "application/vnd.dbf", + PermissibleValue(text="application/vnd.dbf")) + setattr(cls, "application/vnd.debian.binary-package", + PermissibleValue(text="application/vnd.debian.binary-package")) + setattr(cls, "application/vnd.dece.data", + PermissibleValue(text="application/vnd.dece.data")) + setattr(cls, "application/vnd.dece.ttml+xml", + PermissibleValue(text="application/vnd.dece.ttml+xml")) + setattr(cls, "application/vnd.dece.unspecified", + PermissibleValue(text="application/vnd.dece.unspecified")) + setattr(cls, "application/vnd.dece.zip", + PermissibleValue(text="application/vnd.dece.zip")) + setattr(cls, "application/vnd.denovo.fcselayout-link", + PermissibleValue(text="application/vnd.denovo.fcselayout-link")) + setattr(cls, "application/vnd.desmume.movie", + PermissibleValue(text="application/vnd.desmume.movie")) + setattr(cls, "application/vnd.dir-bi.plate-dl-nosuffix", + PermissibleValue(text="application/vnd.dir-bi.plate-dl-nosuffix")) + setattr(cls, "application/vnd.dm.delegation+xml", + PermissibleValue(text="application/vnd.dm.delegation+xml")) + setattr(cls, "application/vnd.dna", + PermissibleValue(text="application/vnd.dna")) + setattr(cls, "application/vnd.document+json", + PermissibleValue(text="application/vnd.document+json")) + setattr(cls, "application/vnd.dolby.mobile.1", + PermissibleValue(text="application/vnd.dolby.mobile.1")) + setattr(cls, "application/vnd.dolby.mobile.2", + PermissibleValue(text="application/vnd.dolby.mobile.2")) + setattr(cls, "application/vnd.doremir.scorecloud-binary-document", + PermissibleValue(text="application/vnd.doremir.scorecloud-binary-document")) + setattr(cls, "application/vnd.dpgraph", + PermissibleValue(text="application/vnd.dpgraph")) + setattr(cls, "application/vnd.dreamfactory", + PermissibleValue(text="application/vnd.dreamfactory")) + setattr(cls, "application/vnd.drive+json", + PermissibleValue(text="application/vnd.drive+json")) + setattr(cls, "application/vnd.dtg.local", + PermissibleValue(text="application/vnd.dtg.local")) + setattr(cls, "application/vnd.dtg.local.flash", + PermissibleValue(text="application/vnd.dtg.local.flash")) + setattr(cls, "application/vnd.dtg.local.html", + PermissibleValue(text="application/vnd.dtg.local.html")) + setattr(cls, "application/vnd.dvb.ait", + PermissibleValue(text="application/vnd.dvb.ait")) + setattr(cls, "application/vnd.dvb.dvbisl+xml", + PermissibleValue(text="application/vnd.dvb.dvbisl+xml")) + setattr(cls, "application/vnd.dvb.dvbj", + PermissibleValue(text="application/vnd.dvb.dvbj")) + setattr(cls, "application/vnd.dvb.esgcontainer", + PermissibleValue(text="application/vnd.dvb.esgcontainer")) + setattr(cls, "application/vnd.dvb.ipdcdftnotifaccess", + PermissibleValue(text="application/vnd.dvb.ipdcdftnotifaccess")) + setattr(cls, "application/vnd.dvb.ipdcesgaccess", + PermissibleValue(text="application/vnd.dvb.ipdcesgaccess")) + setattr(cls, "application/vnd.dvb.ipdcesgaccess2", + PermissibleValue(text="application/vnd.dvb.ipdcesgaccess2")) + setattr(cls, "application/vnd.dvb.ipdcesgpdd", + PermissibleValue(text="application/vnd.dvb.ipdcesgpdd")) + setattr(cls, "application/vnd.dvb.ipdcroaming", + PermissibleValue(text="application/vnd.dvb.ipdcroaming")) + setattr(cls, "application/vnd.dvb.iptv.alfec-base", + PermissibleValue(text="application/vnd.dvb.iptv.alfec-base")) + setattr(cls, "application/vnd.dvb.iptv.alfec-enhancement", + PermissibleValue(text="application/vnd.dvb.iptv.alfec-enhancement")) + setattr(cls, "application/vnd.dvb.notif-aggregate-root+xml", + PermissibleValue(text="application/vnd.dvb.notif-aggregate-root+xml")) + setattr(cls, "application/vnd.dvb.notif-container+xml", + PermissibleValue(text="application/vnd.dvb.notif-container+xml")) + setattr(cls, "application/vnd.dvb.notif-generic+xml", + PermissibleValue(text="application/vnd.dvb.notif-generic+xml")) + setattr(cls, "application/vnd.dvb.notif-ia-msglist+xml", + PermissibleValue(text="application/vnd.dvb.notif-ia-msglist+xml")) + setattr(cls, "application/vnd.dvb.notif-ia-registration-request+xml", + PermissibleValue(text="application/vnd.dvb.notif-ia-registration-request+xml")) + setattr(cls, "application/vnd.dvb.notif-ia-registration-response+xml", + PermissibleValue(text="application/vnd.dvb.notif-ia-registration-response+xml")) + setattr(cls, "application/vnd.dvb.notif-init+xml", + PermissibleValue(text="application/vnd.dvb.notif-init+xml")) + setattr(cls, "application/vnd.dvb.pfr", + PermissibleValue(text="application/vnd.dvb.pfr")) + setattr(cls, "application/vnd.dvb.service", + PermissibleValue(text="application/vnd.dvb.service")) + setattr(cls, "application/vnd.dxr", + PermissibleValue(text="application/vnd.dxr")) + setattr(cls, "application/vnd.dynageo", + PermissibleValue(text="application/vnd.dynageo")) + setattr(cls, "application/vnd.dzr", + PermissibleValue(text="application/vnd.dzr")) + setattr(cls, "application/vnd.easykaraoke.cdgdownload", + PermissibleValue(text="application/vnd.easykaraoke.cdgdownload")) + setattr(cls, "application/vnd.ecip.rlp", + PermissibleValue(text="application/vnd.ecip.rlp")) + setattr(cls, "application/vnd.ecdis-update", + PermissibleValue(text="application/vnd.ecdis-update")) + setattr(cls, "application/vnd.eclipse.ditto+json", + PermissibleValue(text="application/vnd.eclipse.ditto+json")) + setattr(cls, "application/vnd.ecowin.chart", + PermissibleValue(text="application/vnd.ecowin.chart")) + setattr(cls, "application/vnd.ecowin.filerequest", + PermissibleValue(text="application/vnd.ecowin.filerequest")) + setattr(cls, "application/vnd.ecowin.fileupdate", + PermissibleValue(text="application/vnd.ecowin.fileupdate")) + setattr(cls, "application/vnd.ecowin.series", + PermissibleValue(text="application/vnd.ecowin.series")) + setattr(cls, "application/vnd.ecowin.seriesrequest", + PermissibleValue(text="application/vnd.ecowin.seriesrequest")) + setattr(cls, "application/vnd.ecowin.seriesupdate", + PermissibleValue(text="application/vnd.ecowin.seriesupdate")) + setattr(cls, "application/vnd.efi.img", + PermissibleValue(text="application/vnd.efi.img")) + setattr(cls, "application/vnd.efi.iso", + PermissibleValue(text="application/vnd.efi.iso")) + setattr(cls, "application/vnd.eln+zip", + PermissibleValue(text="application/vnd.eln+zip")) + setattr(cls, "application/vnd.emclient.accessrequest+xml", + PermissibleValue(text="application/vnd.emclient.accessrequest+xml")) + setattr(cls, "application/vnd.enliven", + PermissibleValue(text="application/vnd.enliven")) + setattr(cls, "application/vnd.enphase.envoy", + PermissibleValue(text="application/vnd.enphase.envoy")) + setattr(cls, "application/vnd.eprints.data+xml", + PermissibleValue(text="application/vnd.eprints.data+xml")) + setattr(cls, "application/vnd.epson.esf", + PermissibleValue(text="application/vnd.epson.esf")) + setattr(cls, "application/vnd.epson.msf", + PermissibleValue(text="application/vnd.epson.msf")) + setattr(cls, "application/vnd.epson.quickanime", + PermissibleValue(text="application/vnd.epson.quickanime")) + setattr(cls, "application/vnd.epson.salt", + PermissibleValue(text="application/vnd.epson.salt")) + setattr(cls, "application/vnd.epson.ssf", + PermissibleValue(text="application/vnd.epson.ssf")) + setattr(cls, "application/vnd.ericsson.quickcall", + PermissibleValue(text="application/vnd.ericsson.quickcall")) + setattr(cls, "application/vnd.erofs", + PermissibleValue(text="application/vnd.erofs")) + setattr(cls, "application/vnd.espass-espass+zip", + PermissibleValue(text="application/vnd.espass-espass+zip")) + setattr(cls, "application/vnd.eszigno3+xml", + PermissibleValue(text="application/vnd.eszigno3+xml")) + setattr(cls, "application/vnd.etsi.aoc+xml", + PermissibleValue(text="application/vnd.etsi.aoc+xml")) + setattr(cls, "application/vnd.etsi.asic-s+zip", + PermissibleValue(text="application/vnd.etsi.asic-s+zip")) + setattr(cls, "application/vnd.etsi.asic-e+zip", + PermissibleValue(text="application/vnd.etsi.asic-e+zip")) + setattr(cls, "application/vnd.etsi.cug+xml", + PermissibleValue(text="application/vnd.etsi.cug+xml")) + setattr(cls, "application/vnd.etsi.iptvcommand+xml", + PermissibleValue(text="application/vnd.etsi.iptvcommand+xml")) + setattr(cls, "application/vnd.etsi.iptvdiscovery+xml", + PermissibleValue(text="application/vnd.etsi.iptvdiscovery+xml")) + setattr(cls, "application/vnd.etsi.iptvprofile+xml", + PermissibleValue(text="application/vnd.etsi.iptvprofile+xml")) + setattr(cls, "application/vnd.etsi.iptvsad-bc+xml", + PermissibleValue(text="application/vnd.etsi.iptvsad-bc+xml")) + setattr(cls, "application/vnd.etsi.iptvsad-cod+xml", + PermissibleValue(text="application/vnd.etsi.iptvsad-cod+xml")) + setattr(cls, "application/vnd.etsi.iptvsad-npvr+xml", + PermissibleValue(text="application/vnd.etsi.iptvsad-npvr+xml")) + setattr(cls, "application/vnd.etsi.iptvservice+xml", + PermissibleValue(text="application/vnd.etsi.iptvservice+xml")) + setattr(cls, "application/vnd.etsi.iptvsync+xml", + PermissibleValue(text="application/vnd.etsi.iptvsync+xml")) + setattr(cls, "application/vnd.etsi.iptvueprofile+xml", + PermissibleValue(text="application/vnd.etsi.iptvueprofile+xml")) + setattr(cls, "application/vnd.etsi.mcid+xml", + PermissibleValue(text="application/vnd.etsi.mcid+xml")) + setattr(cls, "application/vnd.etsi.mheg5", + PermissibleValue(text="application/vnd.etsi.mheg5")) + setattr(cls, "application/vnd.etsi.overload-control-policy-dataset+xml", + PermissibleValue(text="application/vnd.etsi.overload-control-policy-dataset+xml")) + setattr(cls, "application/vnd.etsi.pstn+xml", + PermissibleValue(text="application/vnd.etsi.pstn+xml")) + setattr(cls, "application/vnd.etsi.sci+xml", + PermissibleValue(text="application/vnd.etsi.sci+xml")) + setattr(cls, "application/vnd.etsi.simservs+xml", + PermissibleValue(text="application/vnd.etsi.simservs+xml")) + setattr(cls, "application/vnd.etsi.timestamp-token", + PermissibleValue(text="application/vnd.etsi.timestamp-token")) + setattr(cls, "application/vnd.etsi.tsl+xml", + PermissibleValue(text="application/vnd.etsi.tsl+xml")) + setattr(cls, "application/vnd.etsi.tsl.der", + PermissibleValue(text="application/vnd.etsi.tsl.der")) + setattr(cls, "application/vnd.eu.kasparian.car+json", + PermissibleValue(text="application/vnd.eu.kasparian.car+json")) + setattr(cls, "application/vnd.eudora.data", + PermissibleValue(text="application/vnd.eudora.data")) + setattr(cls, "application/vnd.evolv.ecig.profile", + PermissibleValue(text="application/vnd.evolv.ecig.profile")) + setattr(cls, "application/vnd.evolv.ecig.settings", + PermissibleValue(text="application/vnd.evolv.ecig.settings")) + setattr(cls, "application/vnd.evolv.ecig.theme", + PermissibleValue(text="application/vnd.evolv.ecig.theme")) + setattr(cls, "application/vnd.exstream-empower+zip", + PermissibleValue(text="application/vnd.exstream-empower+zip")) + setattr(cls, "application/vnd.exstream-package", + PermissibleValue(text="application/vnd.exstream-package")) + setattr(cls, "application/vnd.ezpix-album", + PermissibleValue(text="application/vnd.ezpix-album")) + setattr(cls, "application/vnd.ezpix-package", + PermissibleValue(text="application/vnd.ezpix-package")) + setattr(cls, "application/vnd.f-secure.mobile", + PermissibleValue(text="application/vnd.f-secure.mobile")) + setattr(cls, "application/vnd.fastcopy-disk-image", + PermissibleValue(text="application/vnd.fastcopy-disk-image")) + setattr(cls, "application/vnd.familysearch.gedcom+zip", + PermissibleValue(text="application/vnd.familysearch.gedcom+zip")) + setattr(cls, "application/vnd.fdsn.mseed", + PermissibleValue(text="application/vnd.fdsn.mseed")) + setattr(cls, "application/vnd.fdsn.seed", + PermissibleValue(text="application/vnd.fdsn.seed")) + setattr(cls, "application/vnd.ffsns", + PermissibleValue(text="application/vnd.ffsns")) + setattr(cls, "application/vnd.ficlab.flb+zip", + PermissibleValue(text="application/vnd.ficlab.flb+zip")) + setattr(cls, "application/vnd.filmit.zfc", + PermissibleValue(text="application/vnd.filmit.zfc")) + setattr(cls, "application/vnd.fints", + PermissibleValue(text="application/vnd.fints")) + setattr(cls, "application/vnd.firemonkeys.cloudcell", + PermissibleValue(text="application/vnd.firemonkeys.cloudcell")) + setattr(cls, "application/vnd.FloGraphIt", + PermissibleValue(text="application/vnd.FloGraphIt")) + setattr(cls, "application/vnd.fluxtime.clip", + PermissibleValue(text="application/vnd.fluxtime.clip")) + setattr(cls, "application/vnd.font-fontforge-sfd", + PermissibleValue(text="application/vnd.font-fontforge-sfd")) + setattr(cls, "application/vnd.framemaker", + PermissibleValue(text="application/vnd.framemaker")) + setattr(cls, "application/vnd.freelog.comic", + PermissibleValue(text="application/vnd.freelog.comic")) + setattr(cls, "application/vnd.frogans.fnc", + PermissibleValue(text="application/vnd.frogans.fnc")) + setattr(cls, "application/vnd.frogans.ltf", + PermissibleValue(text="application/vnd.frogans.ltf")) + setattr(cls, "application/vnd.fsc.weblaunch", + PermissibleValue(text="application/vnd.fsc.weblaunch")) + setattr(cls, "application/vnd.fujifilm.fb.docuworks", + PermissibleValue(text="application/vnd.fujifilm.fb.docuworks")) + setattr(cls, "application/vnd.fujifilm.fb.docuworks.binder", + PermissibleValue(text="application/vnd.fujifilm.fb.docuworks.binder")) + setattr(cls, "application/vnd.fujifilm.fb.docuworks.container", + PermissibleValue(text="application/vnd.fujifilm.fb.docuworks.container")) + setattr(cls, "application/vnd.fujifilm.fb.jfi+xml", + PermissibleValue(text="application/vnd.fujifilm.fb.jfi+xml")) + setattr(cls, "application/vnd.fujitsu.oasys", + PermissibleValue(text="application/vnd.fujitsu.oasys")) + setattr(cls, "application/vnd.fujitsu.oasys2", + PermissibleValue(text="application/vnd.fujitsu.oasys2")) + setattr(cls, "application/vnd.fujitsu.oasys3", + PermissibleValue(text="application/vnd.fujitsu.oasys3")) + setattr(cls, "application/vnd.fujitsu.oasysgp", + PermissibleValue(text="application/vnd.fujitsu.oasysgp")) + setattr(cls, "application/vnd.fujitsu.oasysprs", + PermissibleValue(text="application/vnd.fujitsu.oasysprs")) + setattr(cls, "application/vnd.fujixerox.ART4", + PermissibleValue(text="application/vnd.fujixerox.ART4")) + setattr(cls, "application/vnd.fujixerox.ART-EX", + PermissibleValue(text="application/vnd.fujixerox.ART-EX")) + setattr(cls, "application/vnd.fujixerox.ddd", + PermissibleValue(text="application/vnd.fujixerox.ddd")) + setattr(cls, "application/vnd.fujixerox.docuworks", + PermissibleValue(text="application/vnd.fujixerox.docuworks")) + setattr(cls, "application/vnd.fujixerox.docuworks.binder", + PermissibleValue(text="application/vnd.fujixerox.docuworks.binder")) + setattr(cls, "application/vnd.fujixerox.docuworks.container", + PermissibleValue(text="application/vnd.fujixerox.docuworks.container")) + setattr(cls, "application/vnd.fujixerox.HBPL", + PermissibleValue(text="application/vnd.fujixerox.HBPL")) + setattr(cls, "application/vnd.fut-misnet", + PermissibleValue(text="application/vnd.fut-misnet")) + setattr(cls, "application/vnd.futoin+cbor", + PermissibleValue(text="application/vnd.futoin+cbor")) + setattr(cls, "application/vnd.futoin+json", + PermissibleValue(text="application/vnd.futoin+json")) + setattr(cls, "application/vnd.fuzzysheet", + PermissibleValue(text="application/vnd.fuzzysheet")) + setattr(cls, "application/vnd.ga4gh.passport+jwt", + PermissibleValue(text="application/vnd.ga4gh.passport+jwt")) + setattr(cls, "application/vnd.genomatix.tuxedo", + PermissibleValue(text="application/vnd.genomatix.tuxedo")) + setattr(cls, "application/vnd.genozip", + PermissibleValue(text="application/vnd.genozip")) + setattr(cls, "application/vnd.gentics.grd+json", + PermissibleValue(text="application/vnd.gentics.grd+json")) + setattr(cls, "application/vnd.gentoo.catmetadata+xml", + PermissibleValue(text="application/vnd.gentoo.catmetadata+xml")) + setattr(cls, "application/vnd.gentoo.ebuild", + PermissibleValue(text="application/vnd.gentoo.ebuild")) + setattr(cls, "application/vnd.gentoo.eclass", + PermissibleValue(text="application/vnd.gentoo.eclass")) + setattr(cls, "application/vnd.gentoo.gpkg", + PermissibleValue(text="application/vnd.gentoo.gpkg")) + setattr(cls, "application/vnd.gentoo.manifest", + PermissibleValue(text="application/vnd.gentoo.manifest")) + setattr(cls, "application/vnd.gentoo.xpak", + PermissibleValue(text="application/vnd.gentoo.xpak")) + setattr(cls, "application/vnd.gentoo.pkgmetadata+xml", + PermissibleValue(text="application/vnd.gentoo.pkgmetadata+xml")) + setattr(cls, "application/vnd.geo+json", + PermissibleValue(text="application/vnd.geo+json")) + setattr(cls, "application/vnd.geocube+xml", + PermissibleValue(text="application/vnd.geocube+xml")) + setattr(cls, "application/vnd.geogebra.file", + PermissibleValue(text="application/vnd.geogebra.file")) + setattr(cls, "application/vnd.geogebra.slides", + PermissibleValue(text="application/vnd.geogebra.slides")) + setattr(cls, "application/vnd.geogebra.tool", + PermissibleValue(text="application/vnd.geogebra.tool")) + setattr(cls, "application/vnd.geometry-explorer", + PermissibleValue(text="application/vnd.geometry-explorer")) + setattr(cls, "application/vnd.geonext", + PermissibleValue(text="application/vnd.geonext")) + setattr(cls, "application/vnd.geoplan", + PermissibleValue(text="application/vnd.geoplan")) + setattr(cls, "application/vnd.geospace", + PermissibleValue(text="application/vnd.geospace")) + setattr(cls, "application/vnd.gerber", + PermissibleValue(text="application/vnd.gerber")) + setattr(cls, "application/vnd.globalplatform.card-content-mgt", + PermissibleValue(text="application/vnd.globalplatform.card-content-mgt")) + setattr(cls, "application/vnd.globalplatform.card-content-mgt-response", + PermissibleValue(text="application/vnd.globalplatform.card-content-mgt-response")) + setattr(cls, "application/vnd.gmx", + PermissibleValue(text="application/vnd.gmx")) + setattr(cls, "application/vnd.gnu.taler.exchange+json", + PermissibleValue(text="application/vnd.gnu.taler.exchange+json")) + setattr(cls, "application/vnd.gnu.taler.merchant+json", + PermissibleValue(text="application/vnd.gnu.taler.merchant+json")) + setattr(cls, "application/vnd.google-earth.kml+xml", + PermissibleValue(text="application/vnd.google-earth.kml+xml")) + setattr(cls, "application/vnd.google-earth.kmz", + PermissibleValue(text="application/vnd.google-earth.kmz")) + setattr(cls, "application/vnd.gov.sk.e-form+xml", + PermissibleValue(text="application/vnd.gov.sk.e-form+xml")) + setattr(cls, "application/vnd.gov.sk.e-form+zip", + PermissibleValue(text="application/vnd.gov.sk.e-form+zip")) + setattr(cls, "application/vnd.gov.sk.xmldatacontainer+xml", + PermissibleValue(text="application/vnd.gov.sk.xmldatacontainer+xml")) + setattr(cls, "application/vnd.gpxsee.map+xml", + PermissibleValue(text="application/vnd.gpxsee.map+xml")) + setattr(cls, "application/vnd.grafeq", + PermissibleValue(text="application/vnd.grafeq")) + setattr(cls, "application/vnd.gridmp", + PermissibleValue(text="application/vnd.gridmp")) + setattr(cls, "application/vnd.groove-account", + PermissibleValue(text="application/vnd.groove-account")) + setattr(cls, "application/vnd.groove-help", + PermissibleValue(text="application/vnd.groove-help")) + setattr(cls, "application/vnd.groove-identity-message", + PermissibleValue(text="application/vnd.groove-identity-message")) + setattr(cls, "application/vnd.groove-injector", + PermissibleValue(text="application/vnd.groove-injector")) + setattr(cls, "application/vnd.groove-tool-message", + PermissibleValue(text="application/vnd.groove-tool-message")) + setattr(cls, "application/vnd.groove-tool-template", + PermissibleValue(text="application/vnd.groove-tool-template")) + setattr(cls, "application/vnd.groove-vcard", + PermissibleValue(text="application/vnd.groove-vcard")) + setattr(cls, "application/vnd.hal+json", + PermissibleValue(text="application/vnd.hal+json")) + setattr(cls, "application/vnd.hal+xml", + PermissibleValue(text="application/vnd.hal+xml")) + setattr(cls, "application/vnd.HandHeld-Entertainment+xml", + PermissibleValue(text="application/vnd.HandHeld-Entertainment+xml")) + setattr(cls, "application/vnd.hbci", + PermissibleValue(text="application/vnd.hbci")) + setattr(cls, "application/vnd.hc+json", + PermissibleValue(text="application/vnd.hc+json")) + setattr(cls, "application/vnd.hcl-bireports", + PermissibleValue(text="application/vnd.hcl-bireports")) + setattr(cls, "application/vnd.hdt", + PermissibleValue(text="application/vnd.hdt")) + setattr(cls, "application/vnd.heroku+json", + PermissibleValue(text="application/vnd.heroku+json")) + setattr(cls, "application/vnd.hhe.lesson-player", + PermissibleValue(text="application/vnd.hhe.lesson-player")) + setattr(cls, "application/vnd.hp-HPGL", + PermissibleValue(text="application/vnd.hp-HPGL")) + setattr(cls, "application/vnd.hp-hpid", + PermissibleValue(text="application/vnd.hp-hpid")) + setattr(cls, "application/vnd.hp-hps", + PermissibleValue(text="application/vnd.hp-hps")) + setattr(cls, "application/vnd.hp-jlyt", + PermissibleValue(text="application/vnd.hp-jlyt")) + setattr(cls, "application/vnd.hp-PCL", + PermissibleValue(text="application/vnd.hp-PCL")) + setattr(cls, "application/vnd.hp-PCLXL", + PermissibleValue(text="application/vnd.hp-PCLXL")) + setattr(cls, "application/vnd.hsl", + PermissibleValue(text="application/vnd.hsl")) + setattr(cls, "application/vnd.httphone", + PermissibleValue(text="application/vnd.httphone")) + setattr(cls, "application/vnd.hydrostatix.sof-data", + PermissibleValue(text="application/vnd.hydrostatix.sof-data")) + setattr(cls, "application/vnd.hyper-item+json", + PermissibleValue(text="application/vnd.hyper-item+json")) + setattr(cls, "application/vnd.hyper+json", + PermissibleValue(text="application/vnd.hyper+json")) + setattr(cls, "application/vnd.hyperdrive+json", + PermissibleValue(text="application/vnd.hyperdrive+json")) + setattr(cls, "application/vnd.hzn-3d-crossword", + PermissibleValue(text="application/vnd.hzn-3d-crossword")) + setattr(cls, "application/vnd.ibm.afplinedata", + PermissibleValue(text="application/vnd.ibm.afplinedata")) + setattr(cls, "application/vnd.ibm.electronic-media", + PermissibleValue(text="application/vnd.ibm.electronic-media")) + setattr(cls, "application/vnd.ibm.MiniPay", + PermissibleValue(text="application/vnd.ibm.MiniPay")) + setattr(cls, "application/vnd.ibm.modcap", + PermissibleValue(text="application/vnd.ibm.modcap")) + setattr(cls, "application/vnd.ibm.rights-management", + PermissibleValue(text="application/vnd.ibm.rights-management")) + setattr(cls, "application/vnd.ibm.secure-container", + PermissibleValue(text="application/vnd.ibm.secure-container")) + setattr(cls, "application/vnd.iccprofile", + PermissibleValue(text="application/vnd.iccprofile")) + setattr(cls, "application/vnd.ieee.1905", + PermissibleValue(text="application/vnd.ieee.1905")) + setattr(cls, "application/vnd.igloader", + PermissibleValue(text="application/vnd.igloader")) + setattr(cls, "application/vnd.imagemeter.folder+zip", + PermissibleValue(text="application/vnd.imagemeter.folder+zip")) + setattr(cls, "application/vnd.imagemeter.image+zip", + PermissibleValue(text="application/vnd.imagemeter.image+zip")) + setattr(cls, "application/vnd.immervision-ivp", + PermissibleValue(text="application/vnd.immervision-ivp")) + setattr(cls, "application/vnd.immervision-ivu", + PermissibleValue(text="application/vnd.immervision-ivu")) + setattr(cls, "application/vnd.ims.imsccv1p1", + PermissibleValue(text="application/vnd.ims.imsccv1p1")) + setattr(cls, "application/vnd.ims.imsccv1p2", + PermissibleValue(text="application/vnd.ims.imsccv1p2")) + setattr(cls, "application/vnd.ims.imsccv1p3", + PermissibleValue(text="application/vnd.ims.imsccv1p3")) + setattr(cls, "application/vnd.ims.lis.v2.result+json", + PermissibleValue(text="application/vnd.ims.lis.v2.result+json")) + setattr(cls, "application/vnd.ims.lti.v2.toolconsumerprofile+json", + PermissibleValue(text="application/vnd.ims.lti.v2.toolconsumerprofile+json")) + setattr(cls, "application/vnd.ims.lti.v2.toolproxy.id+json", + PermissibleValue(text="application/vnd.ims.lti.v2.toolproxy.id+json")) + setattr(cls, "application/vnd.ims.lti.v2.toolproxy+json", + PermissibleValue(text="application/vnd.ims.lti.v2.toolproxy+json")) + setattr(cls, "application/vnd.ims.lti.v2.toolsettings+json", + PermissibleValue(text="application/vnd.ims.lti.v2.toolsettings+json")) + setattr(cls, "application/vnd.ims.lti.v2.toolsettings.simple+json", + PermissibleValue(text="application/vnd.ims.lti.v2.toolsettings.simple+json")) + setattr(cls, "application/vnd.informedcontrol.rms+xml", + PermissibleValue(text="application/vnd.informedcontrol.rms+xml")) + setattr(cls, "application/vnd.infotech.project", + PermissibleValue(text="application/vnd.infotech.project")) + setattr(cls, "application/vnd.infotech.project+xml", + PermissibleValue(text="application/vnd.infotech.project+xml")) + setattr(cls, "application/vnd.informix-visionary", + PermissibleValue(text="application/vnd.informix-visionary")) + setattr(cls, "application/vnd.innopath.wamp.notification", + PermissibleValue(text="application/vnd.innopath.wamp.notification")) + setattr(cls, "application/vnd.insors.igm", + PermissibleValue(text="application/vnd.insors.igm")) + setattr(cls, "application/vnd.intercon.formnet", + PermissibleValue(text="application/vnd.intercon.formnet")) + setattr(cls, "application/vnd.intergeo", + PermissibleValue(text="application/vnd.intergeo")) + setattr(cls, "application/vnd.intertrust.digibox", + PermissibleValue(text="application/vnd.intertrust.digibox")) + setattr(cls, "application/vnd.intertrust.nncp", + PermissibleValue(text="application/vnd.intertrust.nncp")) + setattr(cls, "application/vnd.intu.qbo", + PermissibleValue(text="application/vnd.intu.qbo")) + setattr(cls, "application/vnd.intu.qfx", + PermissibleValue(text="application/vnd.intu.qfx")) + setattr(cls, "application/vnd.ipfs.ipns-record", + PermissibleValue(text="application/vnd.ipfs.ipns-record")) + setattr(cls, "application/vnd.ipld.car", + PermissibleValue(text="application/vnd.ipld.car")) + setattr(cls, "application/vnd.ipld.dag-cbor", + PermissibleValue(text="application/vnd.ipld.dag-cbor")) + setattr(cls, "application/vnd.ipld.dag-json", + PermissibleValue(text="application/vnd.ipld.dag-json")) + setattr(cls, "application/vnd.ipld.raw", + PermissibleValue(text="application/vnd.ipld.raw")) + setattr(cls, "application/vnd.iptc.g2.catalogitem+xml", + PermissibleValue(text="application/vnd.iptc.g2.catalogitem+xml")) + setattr(cls, "application/vnd.iptc.g2.conceptitem+xml", + PermissibleValue(text="application/vnd.iptc.g2.conceptitem+xml")) + setattr(cls, "application/vnd.iptc.g2.knowledgeitem+xml", + PermissibleValue(text="application/vnd.iptc.g2.knowledgeitem+xml")) + setattr(cls, "application/vnd.iptc.g2.newsitem+xml", + PermissibleValue(text="application/vnd.iptc.g2.newsitem+xml")) + setattr(cls, "application/vnd.iptc.g2.newsmessage+xml", + PermissibleValue(text="application/vnd.iptc.g2.newsmessage+xml")) + setattr(cls, "application/vnd.iptc.g2.packageitem+xml", + PermissibleValue(text="application/vnd.iptc.g2.packageitem+xml")) + setattr(cls, "application/vnd.iptc.g2.planningitem+xml", + PermissibleValue(text="application/vnd.iptc.g2.planningitem+xml")) + setattr(cls, "application/vnd.ipunplugged.rcprofile", + PermissibleValue(text="application/vnd.ipunplugged.rcprofile")) + setattr(cls, "application/vnd.irepository.package+xml", + PermissibleValue(text="application/vnd.irepository.package+xml")) + setattr(cls, "application/vnd.is-xpr", + PermissibleValue(text="application/vnd.is-xpr")) + setattr(cls, "application/vnd.isac.fcs", + PermissibleValue(text="application/vnd.isac.fcs")) + setattr(cls, "application/vnd.jam", + PermissibleValue(text="application/vnd.jam")) + setattr(cls, "application/vnd.iso11783-10+zip", + PermissibleValue(text="application/vnd.iso11783-10+zip")) + setattr(cls, "application/vnd.japannet-directory-service", + PermissibleValue(text="application/vnd.japannet-directory-service")) + setattr(cls, "application/vnd.japannet-jpnstore-wakeup", + PermissibleValue(text="application/vnd.japannet-jpnstore-wakeup")) + setattr(cls, "application/vnd.japannet-payment-wakeup", + PermissibleValue(text="application/vnd.japannet-payment-wakeup")) + setattr(cls, "application/vnd.japannet-registration", + PermissibleValue(text="application/vnd.japannet-registration")) + setattr(cls, "application/vnd.japannet-registration-wakeup", + PermissibleValue(text="application/vnd.japannet-registration-wakeup")) + setattr(cls, "application/vnd.japannet-setstore-wakeup", + PermissibleValue(text="application/vnd.japannet-setstore-wakeup")) + setattr(cls, "application/vnd.japannet-verification", + PermissibleValue(text="application/vnd.japannet-verification")) + setattr(cls, "application/vnd.japannet-verification-wakeup", + PermissibleValue(text="application/vnd.japannet-verification-wakeup")) + setattr(cls, "application/vnd.jcp.javame.midlet-rms", + PermissibleValue(text="application/vnd.jcp.javame.midlet-rms")) + setattr(cls, "application/vnd.jisp", + PermissibleValue(text="application/vnd.jisp")) + setattr(cls, "application/vnd.joost.joda-archive", + PermissibleValue(text="application/vnd.joost.joda-archive")) + setattr(cls, "application/vnd.jsk.isdn-ngn", + PermissibleValue(text="application/vnd.jsk.isdn-ngn")) + setattr(cls, "application/vnd.kahootz", + PermissibleValue(text="application/vnd.kahootz")) + setattr(cls, "application/vnd.kde.karbon", + PermissibleValue(text="application/vnd.kde.karbon")) + setattr(cls, "application/vnd.kde.kchart", + PermissibleValue(text="application/vnd.kde.kchart")) + setattr(cls, "application/vnd.kde.kformula", + PermissibleValue(text="application/vnd.kde.kformula")) + setattr(cls, "application/vnd.kde.kivio", + PermissibleValue(text="application/vnd.kde.kivio")) + setattr(cls, "application/vnd.kde.kontour", + PermissibleValue(text="application/vnd.kde.kontour")) + setattr(cls, "application/vnd.kde.kpresenter", + PermissibleValue(text="application/vnd.kde.kpresenter")) + setattr(cls, "application/vnd.kde.kspread", + PermissibleValue(text="application/vnd.kde.kspread")) + setattr(cls, "application/vnd.kde.kword", + PermissibleValue(text="application/vnd.kde.kword")) + setattr(cls, "application/vnd.kenameaapp", + PermissibleValue(text="application/vnd.kenameaapp")) + setattr(cls, "application/vnd.kidspiration", + PermissibleValue(text="application/vnd.kidspiration")) + setattr(cls, "application/vnd.Kinar", + PermissibleValue(text="application/vnd.Kinar")) + setattr(cls, "application/vnd.koan", + PermissibleValue(text="application/vnd.koan")) + setattr(cls, "application/vnd.kodak-descriptor", + PermissibleValue(text="application/vnd.kodak-descriptor")) + setattr(cls, "application/vnd.las", + PermissibleValue(text="application/vnd.las")) + setattr(cls, "application/vnd.las.las+json", + PermissibleValue(text="application/vnd.las.las+json")) + setattr(cls, "application/vnd.las.las+xml", + PermissibleValue(text="application/vnd.las.las+xml")) + setattr(cls, "application/vnd.laszip", + PermissibleValue(text="application/vnd.laszip")) + setattr(cls, "application/vnd.ldev.productlicensing", + PermissibleValue(text="application/vnd.ldev.productlicensing")) + setattr(cls, "application/vnd.leap+json", + PermissibleValue(text="application/vnd.leap+json")) + setattr(cls, "application/vnd.liberty-request+xml", + PermissibleValue(text="application/vnd.liberty-request+xml")) + setattr(cls, "application/vnd.llamagraphics.life-balance.desktop", + PermissibleValue(text="application/vnd.llamagraphics.life-balance.desktop")) + setattr(cls, "application/vnd.llamagraphics.life-balance.exchange+xml", + PermissibleValue(text="application/vnd.llamagraphics.life-balance.exchange+xml")) + setattr(cls, "application/vnd.logipipe.circuit+zip", + PermissibleValue(text="application/vnd.logipipe.circuit+zip")) + setattr(cls, "application/vnd.loom", + PermissibleValue(text="application/vnd.loom")) + setattr(cls, "application/vnd.lotus-1-2-3", + PermissibleValue(text="application/vnd.lotus-1-2-3")) + setattr(cls, "application/vnd.lotus-approach", + PermissibleValue(text="application/vnd.lotus-approach")) + setattr(cls, "application/vnd.lotus-freelance", + PermissibleValue(text="application/vnd.lotus-freelance")) + setattr(cls, "application/vnd.lotus-notes", + PermissibleValue(text="application/vnd.lotus-notes")) + setattr(cls, "application/vnd.lotus-organizer", + PermissibleValue(text="application/vnd.lotus-organizer")) + setattr(cls, "application/vnd.lotus-screencam", + PermissibleValue(text="application/vnd.lotus-screencam")) + setattr(cls, "application/vnd.lotus-wordpro", + PermissibleValue(text="application/vnd.lotus-wordpro")) + setattr(cls, "application/vnd.macports.portpkg", + PermissibleValue(text="application/vnd.macports.portpkg")) + setattr(cls, "application/vnd.mapbox-vector-tile", + PermissibleValue(text="application/vnd.mapbox-vector-tile")) + setattr(cls, "application/vnd.marlin.drm.actiontoken+xml", + PermissibleValue(text="application/vnd.marlin.drm.actiontoken+xml")) + setattr(cls, "application/vnd.marlin.drm.conftoken+xml", + PermissibleValue(text="application/vnd.marlin.drm.conftoken+xml")) + setattr(cls, "application/vnd.marlin.drm.license+xml", + PermissibleValue(text="application/vnd.marlin.drm.license+xml")) + setattr(cls, "application/vnd.marlin.drm.mdcf", + PermissibleValue(text="application/vnd.marlin.drm.mdcf")) + setattr(cls, "application/vnd.mason+json", + PermissibleValue(text="application/vnd.mason+json")) + setattr(cls, "application/vnd.maxar.archive.3tz+zip", + PermissibleValue(text="application/vnd.maxar.archive.3tz+zip")) + setattr(cls, "application/vnd.maxmind.maxmind-db", + PermissibleValue(text="application/vnd.maxmind.maxmind-db")) + setattr(cls, "application/vnd.mcd", + PermissibleValue(text="application/vnd.mcd")) + setattr(cls, "application/vnd.mdl", + PermissibleValue(text="application/vnd.mdl")) + setattr(cls, "application/vnd.mdl-mbsdf", + PermissibleValue(text="application/vnd.mdl-mbsdf")) + setattr(cls, "application/vnd.medcalcdata", + PermissibleValue(text="application/vnd.medcalcdata")) + setattr(cls, "application/vnd.mediastation.cdkey", + PermissibleValue(text="application/vnd.mediastation.cdkey")) + setattr(cls, "application/vnd.medicalholodeck.recordxr", + PermissibleValue(text="application/vnd.medicalholodeck.recordxr")) + setattr(cls, "application/vnd.meridian-slingshot", + PermissibleValue(text="application/vnd.meridian-slingshot")) + setattr(cls, "application/vnd.mermaid", + PermissibleValue(text="application/vnd.mermaid")) + setattr(cls, "application/vnd.MFER", + PermissibleValue(text="application/vnd.MFER")) + setattr(cls, "application/vnd.mfmp", + PermissibleValue(text="application/vnd.mfmp")) + setattr(cls, "application/vnd.micro+json", + PermissibleValue(text="application/vnd.micro+json")) + setattr(cls, "application/vnd.micrografx.flo", + PermissibleValue(text="application/vnd.micrografx.flo")) + setattr(cls, "application/vnd.micrografx.igx", + PermissibleValue(text="application/vnd.micrografx.igx")) + setattr(cls, "application/vnd.microsoft.portable-executable", + PermissibleValue(text="application/vnd.microsoft.portable-executable")) + setattr(cls, "application/vnd.microsoft.windows.thumbnail-cache", + PermissibleValue(text="application/vnd.microsoft.windows.thumbnail-cache")) + setattr(cls, "application/vnd.miele+json", + PermissibleValue(text="application/vnd.miele+json")) + setattr(cls, "application/vnd.mif", + PermissibleValue(text="application/vnd.mif")) + setattr(cls, "application/vnd.minisoft-hp3000-save", + PermissibleValue(text="application/vnd.minisoft-hp3000-save")) + setattr(cls, "application/vnd.mitsubishi.misty-guard.trustweb", + PermissibleValue(text="application/vnd.mitsubishi.misty-guard.trustweb")) + setattr(cls, "application/vnd.Mobius.DAF", + PermissibleValue(text="application/vnd.Mobius.DAF")) + setattr(cls, "application/vnd.Mobius.DIS", + PermissibleValue(text="application/vnd.Mobius.DIS")) + setattr(cls, "application/vnd.Mobius.MBK", + PermissibleValue(text="application/vnd.Mobius.MBK")) + setattr(cls, "application/vnd.Mobius.MQY", + PermissibleValue(text="application/vnd.Mobius.MQY")) + setattr(cls, "application/vnd.Mobius.MSL", + PermissibleValue(text="application/vnd.Mobius.MSL")) + setattr(cls, "application/vnd.Mobius.PLC", + PermissibleValue(text="application/vnd.Mobius.PLC")) + setattr(cls, "application/vnd.Mobius.TXF", + PermissibleValue(text="application/vnd.Mobius.TXF")) + setattr(cls, "application/vnd.modl", + PermissibleValue(text="application/vnd.modl")) + setattr(cls, "application/vnd.mophun.application", + PermissibleValue(text="application/vnd.mophun.application")) + setattr(cls, "application/vnd.mophun.certificate", + PermissibleValue(text="application/vnd.mophun.certificate")) + setattr(cls, "application/vnd.motorola.flexsuite", + PermissibleValue(text="application/vnd.motorola.flexsuite")) + setattr(cls, "application/vnd.motorola.flexsuite.adsi", + PermissibleValue(text="application/vnd.motorola.flexsuite.adsi")) + setattr(cls, "application/vnd.motorola.flexsuite.fis", + PermissibleValue(text="application/vnd.motorola.flexsuite.fis")) + setattr(cls, "application/vnd.motorola.flexsuite.gotap", + PermissibleValue(text="application/vnd.motorola.flexsuite.gotap")) + setattr(cls, "application/vnd.motorola.flexsuite.kmr", + PermissibleValue(text="application/vnd.motorola.flexsuite.kmr")) + setattr(cls, "application/vnd.motorola.flexsuite.ttc", + PermissibleValue(text="application/vnd.motorola.flexsuite.ttc")) + setattr(cls, "application/vnd.motorola.flexsuite.wem", + PermissibleValue(text="application/vnd.motorola.flexsuite.wem")) + setattr(cls, "application/vnd.motorola.iprm", + PermissibleValue(text="application/vnd.motorola.iprm")) + setattr(cls, "application/vnd.mozilla.xul+xml", + PermissibleValue(text="application/vnd.mozilla.xul+xml")) + setattr(cls, "application/vnd.ms-artgalry", + PermissibleValue(text="application/vnd.ms-artgalry")) + setattr(cls, "application/vnd.ms-asf", + PermissibleValue(text="application/vnd.ms-asf")) + setattr(cls, "application/vnd.ms-cab-compressed", + PermissibleValue(text="application/vnd.ms-cab-compressed")) + setattr(cls, "application/vnd.ms-3mfdocument", + PermissibleValue(text="application/vnd.ms-3mfdocument")) + setattr(cls, "application/vnd.ms-excel", + PermissibleValue(text="application/vnd.ms-excel")) + setattr(cls, "application/vnd.ms-excel.addin.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-excel.addin.macroEnabled.12")) + setattr(cls, "application/vnd.ms-excel.sheet.binary.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-excel.sheet.binary.macroEnabled.12")) + setattr(cls, "application/vnd.ms-excel.sheet.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-excel.sheet.macroEnabled.12")) + setattr(cls, "application/vnd.ms-excel.template.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-excel.template.macroEnabled.12")) + setattr(cls, "application/vnd.ms-fontobject", + PermissibleValue(text="application/vnd.ms-fontobject")) + setattr(cls, "application/vnd.ms-htmlhelp", + PermissibleValue(text="application/vnd.ms-htmlhelp")) + setattr(cls, "application/vnd.ms-ims", + PermissibleValue(text="application/vnd.ms-ims")) + setattr(cls, "application/vnd.ms-lrm", + PermissibleValue(text="application/vnd.ms-lrm")) + setattr(cls, "application/vnd.ms-office.activeX+xml", + PermissibleValue(text="application/vnd.ms-office.activeX+xml")) + setattr(cls, "application/vnd.ms-officetheme", + PermissibleValue(text="application/vnd.ms-officetheme")) + setattr(cls, "application/vnd.ms-playready.initiator+xml", + PermissibleValue(text="application/vnd.ms-playready.initiator+xml")) + setattr(cls, "application/vnd.ms-powerpoint", + PermissibleValue(text="application/vnd.ms-powerpoint")) + setattr(cls, "application/vnd.ms-powerpoint.addin.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-powerpoint.addin.macroEnabled.12")) + setattr(cls, "application/vnd.ms-powerpoint.presentation.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-powerpoint.presentation.macroEnabled.12")) + setattr(cls, "application/vnd.ms-powerpoint.slide.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-powerpoint.slide.macroEnabled.12")) + setattr(cls, "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-powerpoint.slideshow.macroEnabled.12")) + setattr(cls, "application/vnd.ms-powerpoint.template.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-powerpoint.template.macroEnabled.12")) + setattr(cls, "application/vnd.ms-PrintDeviceCapabilities+xml", + PermissibleValue(text="application/vnd.ms-PrintDeviceCapabilities+xml")) + setattr(cls, "application/vnd.ms-PrintSchemaTicket+xml", + PermissibleValue(text="application/vnd.ms-PrintSchemaTicket+xml")) + setattr(cls, "application/vnd.ms-project", + PermissibleValue(text="application/vnd.ms-project")) + setattr(cls, "application/vnd.ms-tnef", + PermissibleValue(text="application/vnd.ms-tnef")) + setattr(cls, "application/vnd.ms-windows.devicepairing", + PermissibleValue(text="application/vnd.ms-windows.devicepairing")) + setattr(cls, "application/vnd.ms-windows.nwprinting.oob", + PermissibleValue(text="application/vnd.ms-windows.nwprinting.oob")) + setattr(cls, "application/vnd.ms-windows.printerpairing", + PermissibleValue(text="application/vnd.ms-windows.printerpairing")) + setattr(cls, "application/vnd.ms-windows.wsd.oob", + PermissibleValue(text="application/vnd.ms-windows.wsd.oob")) + setattr(cls, "application/vnd.ms-wmdrm.lic-chlg-req", + PermissibleValue(text="application/vnd.ms-wmdrm.lic-chlg-req")) + setattr(cls, "application/vnd.ms-wmdrm.lic-resp", + PermissibleValue(text="application/vnd.ms-wmdrm.lic-resp")) + setattr(cls, "application/vnd.ms-wmdrm.meter-chlg-req", + PermissibleValue(text="application/vnd.ms-wmdrm.meter-chlg-req")) + setattr(cls, "application/vnd.ms-wmdrm.meter-resp", + PermissibleValue(text="application/vnd.ms-wmdrm.meter-resp")) + setattr(cls, "application/vnd.ms-word.document.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-word.document.macroEnabled.12")) + setattr(cls, "application/vnd.ms-word.template.macroEnabled.12", + PermissibleValue(text="application/vnd.ms-word.template.macroEnabled.12")) + setattr(cls, "application/vnd.ms-works", + PermissibleValue(text="application/vnd.ms-works")) + setattr(cls, "application/vnd.ms-wpl", + PermissibleValue(text="application/vnd.ms-wpl")) + setattr(cls, "application/vnd.ms-xpsdocument", + PermissibleValue(text="application/vnd.ms-xpsdocument")) + setattr(cls, "application/vnd.msa-disk-image", + PermissibleValue(text="application/vnd.msa-disk-image")) + setattr(cls, "application/vnd.mseq", + PermissibleValue(text="application/vnd.mseq")) + setattr(cls, "application/vnd.msgpack", + PermissibleValue(text="application/vnd.msgpack")) + setattr(cls, "application/vnd.msign", + PermissibleValue(text="application/vnd.msign")) + setattr(cls, "application/vnd.multiad.creator", + PermissibleValue(text="application/vnd.multiad.creator")) + setattr(cls, "application/vnd.multiad.creator.cif", + PermissibleValue(text="application/vnd.multiad.creator.cif")) + setattr(cls, "application/vnd.musician", + PermissibleValue(text="application/vnd.musician")) + setattr(cls, "application/vnd.music-niff", + PermissibleValue(text="application/vnd.music-niff")) + setattr(cls, "application/vnd.muvee.style", + PermissibleValue(text="application/vnd.muvee.style")) + setattr(cls, "application/vnd.mynfc", + PermissibleValue(text="application/vnd.mynfc")) + setattr(cls, "application/vnd.nacamar.ybrid+json", + PermissibleValue(text="application/vnd.nacamar.ybrid+json")) + setattr(cls, "application/vnd.nato.bindingdataobject+cbor", + PermissibleValue(text="application/vnd.nato.bindingdataobject+cbor")) + setattr(cls, "application/vnd.nato.bindingdataobject+json", + PermissibleValue(text="application/vnd.nato.bindingdataobject+json")) + setattr(cls, "application/vnd.nato.bindingdataobject+xml", + PermissibleValue(text="application/vnd.nato.bindingdataobject+xml")) + setattr(cls, "application/vnd.nato.openxmlformats-package.iepd+zip", + PermissibleValue(text="application/vnd.nato.openxmlformats-package.iepd+zip")) + setattr(cls, "application/vnd.ncd.control", + PermissibleValue(text="application/vnd.ncd.control")) + setattr(cls, "application/vnd.ncd.reference", + PermissibleValue(text="application/vnd.ncd.reference")) + setattr(cls, "application/vnd.nearst.inv+json", + PermissibleValue(text="application/vnd.nearst.inv+json")) + setattr(cls, "application/vnd.nebumind.line", + PermissibleValue(text="application/vnd.nebumind.line")) + setattr(cls, "application/vnd.nervana", + PermissibleValue(text="application/vnd.nervana")) + setattr(cls, "application/vnd.netfpx", + PermissibleValue(text="application/vnd.netfpx")) + setattr(cls, "application/vnd.neurolanguage.nlu", + PermissibleValue(text="application/vnd.neurolanguage.nlu")) + setattr(cls, "application/vnd.nimn", + PermissibleValue(text="application/vnd.nimn")) + setattr(cls, "application/vnd.nintendo.snes.rom", + PermissibleValue(text="application/vnd.nintendo.snes.rom")) + setattr(cls, "application/vnd.nintendo.nitro.rom", + PermissibleValue(text="application/vnd.nintendo.nitro.rom")) + setattr(cls, "application/vnd.nitf", + PermissibleValue(text="application/vnd.nitf")) + setattr(cls, "application/vnd.noblenet-directory", + PermissibleValue(text="application/vnd.noblenet-directory")) + setattr(cls, "application/vnd.noblenet-sealer", + PermissibleValue(text="application/vnd.noblenet-sealer")) + setattr(cls, "application/vnd.noblenet-web", + PermissibleValue(text="application/vnd.noblenet-web")) + setattr(cls, "application/vnd.nokia.catalogs", + PermissibleValue(text="application/vnd.nokia.catalogs")) + setattr(cls, "application/vnd.nokia.conml+wbxml", + PermissibleValue(text="application/vnd.nokia.conml+wbxml")) + setattr(cls, "application/vnd.nokia.conml+xml", + PermissibleValue(text="application/vnd.nokia.conml+xml")) + setattr(cls, "application/vnd.nokia.iptv.config+xml", + PermissibleValue(text="application/vnd.nokia.iptv.config+xml")) + setattr(cls, "application/vnd.nokia.iSDS-radio-presets", + PermissibleValue(text="application/vnd.nokia.iSDS-radio-presets")) + setattr(cls, "application/vnd.nokia.landmark+wbxml", + PermissibleValue(text="application/vnd.nokia.landmark+wbxml")) + setattr(cls, "application/vnd.nokia.landmark+xml", + PermissibleValue(text="application/vnd.nokia.landmark+xml")) + setattr(cls, "application/vnd.nokia.landmarkcollection+xml", + PermissibleValue(text="application/vnd.nokia.landmarkcollection+xml")) + setattr(cls, "application/vnd.nokia.ncd", + PermissibleValue(text="application/vnd.nokia.ncd")) + setattr(cls, "application/vnd.nokia.n-gage.ac+xml", + PermissibleValue(text="application/vnd.nokia.n-gage.ac+xml")) + setattr(cls, "application/vnd.nokia.n-gage.data", + PermissibleValue(text="application/vnd.nokia.n-gage.data")) + setattr(cls, "application/vnd.nokia.n-gage.symbian.install", + PermissibleValue(text="application/vnd.nokia.n-gage.symbian.install")) + setattr(cls, "application/vnd.nokia.pcd+wbxml", + PermissibleValue(text="application/vnd.nokia.pcd+wbxml")) + setattr(cls, "application/vnd.nokia.pcd+xml", + PermissibleValue(text="application/vnd.nokia.pcd+xml")) + setattr(cls, "application/vnd.nokia.radio-preset", + PermissibleValue(text="application/vnd.nokia.radio-preset")) + setattr(cls, "application/vnd.nokia.radio-presets", + PermissibleValue(text="application/vnd.nokia.radio-presets")) + setattr(cls, "application/vnd.novadigm.EDM", + PermissibleValue(text="application/vnd.novadigm.EDM")) + setattr(cls, "application/vnd.novadigm.EDX", + PermissibleValue(text="application/vnd.novadigm.EDX")) + setattr(cls, "application/vnd.novadigm.EXT", + PermissibleValue(text="application/vnd.novadigm.EXT")) + setattr(cls, "application/vnd.ntt-local.content-share", + PermissibleValue(text="application/vnd.ntt-local.content-share")) + setattr(cls, "application/vnd.ntt-local.file-transfer", + PermissibleValue(text="application/vnd.ntt-local.file-transfer")) + setattr(cls, "application/vnd.ntt-local.ogw_remote-access", + PermissibleValue(text="application/vnd.ntt-local.ogw_remote-access")) + setattr(cls, "application/vnd.ntt-local.sip-ta_remote", + PermissibleValue(text="application/vnd.ntt-local.sip-ta_remote")) + setattr(cls, "application/vnd.ntt-local.sip-ta_tcp_stream", + PermissibleValue(text="application/vnd.ntt-local.sip-ta_tcp_stream")) + setattr(cls, "application/vnd.oai.workflows", + PermissibleValue(text="application/vnd.oai.workflows")) + setattr(cls, "application/vnd.oai.workflows+json", + PermissibleValue(text="application/vnd.oai.workflows+json")) + setattr(cls, "application/vnd.oai.workflows+yaml", + PermissibleValue(text="application/vnd.oai.workflows+yaml")) + setattr(cls, "application/vnd.oasis.opendocument.base", + PermissibleValue(text="application/vnd.oasis.opendocument.base")) + setattr(cls, "application/vnd.oasis.opendocument.chart", + PermissibleValue(text="application/vnd.oasis.opendocument.chart")) + setattr(cls, "application/vnd.oasis.opendocument.chart-template", + PermissibleValue(text="application/vnd.oasis.opendocument.chart-template")) + setattr(cls, "application/vnd.oasis.opendocument.database", + PermissibleValue(text="application/vnd.oasis.opendocument.database")) + setattr(cls, "application/vnd.oasis.opendocument.formula", + PermissibleValue(text="application/vnd.oasis.opendocument.formula")) + setattr(cls, "application/vnd.oasis.opendocument.formula-template", + PermissibleValue(text="application/vnd.oasis.opendocument.formula-template")) + setattr(cls, "application/vnd.oasis.opendocument.graphics", + PermissibleValue(text="application/vnd.oasis.opendocument.graphics")) + setattr(cls, "application/vnd.oasis.opendocument.graphics-template", + PermissibleValue(text="application/vnd.oasis.opendocument.graphics-template")) + setattr(cls, "application/vnd.oasis.opendocument.image", + PermissibleValue(text="application/vnd.oasis.opendocument.image")) + setattr(cls, "application/vnd.oasis.opendocument.image-template", + PermissibleValue(text="application/vnd.oasis.opendocument.image-template")) + setattr(cls, "application/vnd.oasis.opendocument.presentation", + PermissibleValue(text="application/vnd.oasis.opendocument.presentation")) + setattr(cls, "application/vnd.oasis.opendocument.presentation-template", + PermissibleValue(text="application/vnd.oasis.opendocument.presentation-template")) + setattr(cls, "application/vnd.oasis.opendocument.spreadsheet", + PermissibleValue(text="application/vnd.oasis.opendocument.spreadsheet")) + setattr(cls, "application/vnd.oasis.opendocument.spreadsheet-template", + PermissibleValue(text="application/vnd.oasis.opendocument.spreadsheet-template")) + setattr(cls, "application/vnd.oasis.opendocument.text", + PermissibleValue(text="application/vnd.oasis.opendocument.text")) + setattr(cls, "application/vnd.oasis.opendocument.text-master", + PermissibleValue(text="application/vnd.oasis.opendocument.text-master")) + setattr(cls, "application/vnd.oasis.opendocument.text-master-template", + PermissibleValue(text="application/vnd.oasis.opendocument.text-master-template")) + setattr(cls, "application/vnd.oasis.opendocument.text-template", + PermissibleValue(text="application/vnd.oasis.opendocument.text-template")) + setattr(cls, "application/vnd.oasis.opendocument.text-web", + PermissibleValue(text="application/vnd.oasis.opendocument.text-web")) + setattr(cls, "application/vnd.obn", + PermissibleValue(text="application/vnd.obn")) + setattr(cls, "application/vnd.ocf+cbor", + PermissibleValue(text="application/vnd.ocf+cbor")) + setattr(cls, "application/vnd.oci.image.manifest.v1+json", + PermissibleValue(text="application/vnd.oci.image.manifest.v1+json")) + setattr(cls, "application/vnd.oftn.l10n+json", + PermissibleValue(text="application/vnd.oftn.l10n+json")) + setattr(cls, "application/vnd.oipf.contentaccessdownload+xml", + PermissibleValue(text="application/vnd.oipf.contentaccessdownload+xml")) + setattr(cls, "application/vnd.oipf.contentaccessstreaming+xml", + PermissibleValue(text="application/vnd.oipf.contentaccessstreaming+xml")) + setattr(cls, "application/vnd.oipf.cspg-hexbinary", + PermissibleValue(text="application/vnd.oipf.cspg-hexbinary")) + setattr(cls, "application/vnd.oipf.dae.svg+xml", + PermissibleValue(text="application/vnd.oipf.dae.svg+xml")) + setattr(cls, "application/vnd.oipf.dae.xhtml+xml", + PermissibleValue(text="application/vnd.oipf.dae.xhtml+xml")) + setattr(cls, "application/vnd.oipf.mippvcontrolmessage+xml", + PermissibleValue(text="application/vnd.oipf.mippvcontrolmessage+xml")) + setattr(cls, "application/vnd.oipf.pae.gem", + PermissibleValue(text="application/vnd.oipf.pae.gem")) + setattr(cls, "application/vnd.oipf.spdiscovery+xml", + PermissibleValue(text="application/vnd.oipf.spdiscovery+xml")) + setattr(cls, "application/vnd.oipf.spdlist+xml", + PermissibleValue(text="application/vnd.oipf.spdlist+xml")) + setattr(cls, "application/vnd.oipf.ueprofile+xml", + PermissibleValue(text="application/vnd.oipf.ueprofile+xml")) + setattr(cls, "application/vnd.oipf.userprofile+xml", + PermissibleValue(text="application/vnd.oipf.userprofile+xml")) + setattr(cls, "application/vnd.olpc-sugar", + PermissibleValue(text="application/vnd.olpc-sugar")) + setattr(cls, "application/vnd.oma.bcast.associated-procedure-parameter+xml", + PermissibleValue(text="application/vnd.oma.bcast.associated-procedure-parameter+xml")) + setattr(cls, "application/vnd.oma.bcast.drm-trigger+xml", + PermissibleValue(text="application/vnd.oma.bcast.drm-trigger+xml")) + setattr(cls, "application/vnd.oma.bcast.imd+xml", + PermissibleValue(text="application/vnd.oma.bcast.imd+xml")) + setattr(cls, "application/vnd.oma.bcast.ltkm", + PermissibleValue(text="application/vnd.oma.bcast.ltkm")) + setattr(cls, "application/vnd.oma.bcast.notification+xml", + PermissibleValue(text="application/vnd.oma.bcast.notification+xml")) + setattr(cls, "application/vnd.oma.bcast.provisioningtrigger", + PermissibleValue(text="application/vnd.oma.bcast.provisioningtrigger")) + setattr(cls, "application/vnd.oma.bcast.sgboot", + PermissibleValue(text="application/vnd.oma.bcast.sgboot")) + setattr(cls, "application/vnd.oma.bcast.sgdd+xml", + PermissibleValue(text="application/vnd.oma.bcast.sgdd+xml")) + setattr(cls, "application/vnd.oma.bcast.sgdu", + PermissibleValue(text="application/vnd.oma.bcast.sgdu")) + setattr(cls, "application/vnd.oma.bcast.simple-symbol-container", + PermissibleValue(text="application/vnd.oma.bcast.simple-symbol-container")) + setattr(cls, "application/vnd.oma.bcast.smartcard-trigger+xml", + PermissibleValue(text="application/vnd.oma.bcast.smartcard-trigger+xml")) + setattr(cls, "application/vnd.oma.bcast.sprov+xml", + PermissibleValue(text="application/vnd.oma.bcast.sprov+xml")) + setattr(cls, "application/vnd.oma.bcast.stkm", + PermissibleValue(text="application/vnd.oma.bcast.stkm")) + setattr(cls, "application/vnd.oma.cab-address-book+xml", + PermissibleValue(text="application/vnd.oma.cab-address-book+xml")) + setattr(cls, "application/vnd.oma.cab-feature-handler+xml", + PermissibleValue(text="application/vnd.oma.cab-feature-handler+xml")) + setattr(cls, "application/vnd.oma.cab-pcc+xml", + PermissibleValue(text="application/vnd.oma.cab-pcc+xml")) + setattr(cls, "application/vnd.oma.cab-subs-invite+xml", + PermissibleValue(text="application/vnd.oma.cab-subs-invite+xml")) + setattr(cls, "application/vnd.oma.cab-user-prefs+xml", + PermissibleValue(text="application/vnd.oma.cab-user-prefs+xml")) + setattr(cls, "application/vnd.oma.dcd", + PermissibleValue(text="application/vnd.oma.dcd")) + setattr(cls, "application/vnd.oma.dcdc", + PermissibleValue(text="application/vnd.oma.dcdc")) + setattr(cls, "application/vnd.oma.dd2+xml", + PermissibleValue(text="application/vnd.oma.dd2+xml")) + setattr(cls, "application/vnd.oma.drm.risd+xml", + PermissibleValue(text="application/vnd.oma.drm.risd+xml")) + setattr(cls, "application/vnd.oma.group-usage-list+xml", + PermissibleValue(text="application/vnd.oma.group-usage-list+xml")) + setattr(cls, "application/vnd.oma.lwm2m+cbor", + PermissibleValue(text="application/vnd.oma.lwm2m+cbor")) + setattr(cls, "application/vnd.oma.lwm2m+json", + PermissibleValue(text="application/vnd.oma.lwm2m+json")) + setattr(cls, "application/vnd.oma.lwm2m+tlv", + PermissibleValue(text="application/vnd.oma.lwm2m+tlv")) + setattr(cls, "application/vnd.oma.pal+xml", + PermissibleValue(text="application/vnd.oma.pal+xml")) + setattr(cls, "application/vnd.oma.poc.detailed-progress-report+xml", + PermissibleValue(text="application/vnd.oma.poc.detailed-progress-report+xml")) + setattr(cls, "application/vnd.oma.poc.final-report+xml", + PermissibleValue(text="application/vnd.oma.poc.final-report+xml")) + setattr(cls, "application/vnd.oma.poc.groups+xml", + PermissibleValue(text="application/vnd.oma.poc.groups+xml")) + setattr(cls, "application/vnd.oma.poc.invocation-descriptor+xml", + PermissibleValue(text="application/vnd.oma.poc.invocation-descriptor+xml")) + setattr(cls, "application/vnd.oma.poc.optimized-progress-report+xml", + PermissibleValue(text="application/vnd.oma.poc.optimized-progress-report+xml")) + setattr(cls, "application/vnd.oma.push", + PermissibleValue(text="application/vnd.oma.push")) + setattr(cls, "application/vnd.oma.scidm.messages+xml", + PermissibleValue(text="application/vnd.oma.scidm.messages+xml")) + setattr(cls, "application/vnd.oma.xcap-directory+xml", + PermissibleValue(text="application/vnd.oma.xcap-directory+xml")) + setattr(cls, "application/vnd.omads-email+xml", + PermissibleValue(text="application/vnd.omads-email+xml")) + setattr(cls, "application/vnd.omads-file+xml", + PermissibleValue(text="application/vnd.omads-file+xml")) + setattr(cls, "application/vnd.omads-folder+xml", + PermissibleValue(text="application/vnd.omads-folder+xml")) + setattr(cls, "application/vnd.omaloc-supl-init", + PermissibleValue(text="application/vnd.omaloc-supl-init")) + setattr(cls, "application/vnd.oma-scws-config", + PermissibleValue(text="application/vnd.oma-scws-config")) + setattr(cls, "application/vnd.oma-scws-http-request", + PermissibleValue(text="application/vnd.oma-scws-http-request")) + setattr(cls, "application/vnd.oma-scws-http-response", + PermissibleValue(text="application/vnd.oma-scws-http-response")) + setattr(cls, "application/vnd.onepager", + PermissibleValue(text="application/vnd.onepager")) + setattr(cls, "application/vnd.onepagertamp", + PermissibleValue(text="application/vnd.onepagertamp")) + setattr(cls, "application/vnd.onepagertamx", + PermissibleValue(text="application/vnd.onepagertamx")) + setattr(cls, "application/vnd.onepagertat", + PermissibleValue(text="application/vnd.onepagertat")) + setattr(cls, "application/vnd.onepagertatp", + PermissibleValue(text="application/vnd.onepagertatp")) + setattr(cls, "application/vnd.onepagertatx", + PermissibleValue(text="application/vnd.onepagertatx")) + setattr(cls, "application/vnd.onvif.metadata", + PermissibleValue(text="application/vnd.onvif.metadata")) + setattr(cls, "application/vnd.openblox.game-binary", + PermissibleValue(text="application/vnd.openblox.game-binary")) + setattr(cls, "application/vnd.openblox.game+xml", + PermissibleValue(text="application/vnd.openblox.game+xml")) + setattr(cls, "application/vnd.openeye.oeb", + PermissibleValue(text="application/vnd.openeye.oeb")) + setattr(cls, "application/vnd.openstreetmap.data+xml", + PermissibleValue(text="application/vnd.openstreetmap.data+xml")) + setattr(cls, "application/vnd.opentimestamps.ots", + PermissibleValue(text="application/vnd.opentimestamps.ots")) + setattr(cls, "application/vnd.openxmlformats-officedocument.custom-properties+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.custom-properties+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.customXmlProperties+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.customXmlProperties+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.drawing+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.drawing+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.drawingml.chart+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.drawingml.chart+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.extended-properties+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.extended-properties+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.comments+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.comments+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.presentation", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.presentation")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.presProps+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.presProps+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.slide", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.slide")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.slide+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.slide+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.slideshow", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.slideshow")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.tags+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.tags+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.template", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.template")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.template.main+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.template", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.template")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.theme+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.theme+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.themeOverride+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.themeOverride+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.vmlDrawing", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.vmlDrawing")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.document")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.template", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.template")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml")) + setattr(cls, "application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml", + PermissibleValue(text="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml")) + setattr(cls, "application/vnd.openxmlformats-package.core-properties+xml", + PermissibleValue(text="application/vnd.openxmlformats-package.core-properties+xml")) + setattr(cls, "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml", + PermissibleValue(text="application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml")) + setattr(cls, "application/vnd.openxmlformats-package.relationships+xml", + PermissibleValue(text="application/vnd.openxmlformats-package.relationships+xml")) + setattr(cls, "application/vnd.oracle.resource+json", + PermissibleValue(text="application/vnd.oracle.resource+json")) + setattr(cls, "application/vnd.orange.indata", + PermissibleValue(text="application/vnd.orange.indata")) + setattr(cls, "application/vnd.osa.netdeploy", + PermissibleValue(text="application/vnd.osa.netdeploy")) + setattr(cls, "application/vnd.osgeo.mapguide.package", + PermissibleValue(text="application/vnd.osgeo.mapguide.package")) + setattr(cls, "application/vnd.osgi.bundle", + PermissibleValue(text="application/vnd.osgi.bundle")) + setattr(cls, "application/vnd.osgi.dp", + PermissibleValue(text="application/vnd.osgi.dp")) + setattr(cls, "application/vnd.osgi.subsystem", + PermissibleValue(text="application/vnd.osgi.subsystem")) + setattr(cls, "application/vnd.otps.ct-kip+xml", + PermissibleValue(text="application/vnd.otps.ct-kip+xml")) + setattr(cls, "application/vnd.oxli.countgraph", + PermissibleValue(text="application/vnd.oxli.countgraph")) + setattr(cls, "application/vnd.pagerduty+json", + PermissibleValue(text="application/vnd.pagerduty+json")) + setattr(cls, "application/vnd.palm", + PermissibleValue(text="application/vnd.palm")) + setattr(cls, "application/vnd.panoply", + PermissibleValue(text="application/vnd.panoply")) + setattr(cls, "application/vnd.paos.xml", + PermissibleValue(text="application/vnd.paos.xml")) + setattr(cls, "application/vnd.patentdive", + PermissibleValue(text="application/vnd.patentdive")) + setattr(cls, "application/vnd.patientecommsdoc", + PermissibleValue(text="application/vnd.patientecommsdoc")) + setattr(cls, "application/vnd.pawaafile", + PermissibleValue(text="application/vnd.pawaafile")) + setattr(cls, "application/vnd.pcos", + PermissibleValue(text="application/vnd.pcos")) + setattr(cls, "application/vnd.pg.format", + PermissibleValue(text="application/vnd.pg.format")) + setattr(cls, "application/vnd.pg.osasli", + PermissibleValue(text="application/vnd.pg.osasli")) + setattr(cls, "application/vnd.piaccess.application-licence", + PermissibleValue(text="application/vnd.piaccess.application-licence")) + setattr(cls, "application/vnd.picsel", + PermissibleValue(text="application/vnd.picsel")) + setattr(cls, "application/vnd.pmi.widget", + PermissibleValue(text="application/vnd.pmi.widget")) + setattr(cls, "application/vnd.poc.group-advertisement+xml", + PermissibleValue(text="application/vnd.poc.group-advertisement+xml")) + setattr(cls, "application/vnd.pocketlearn", + PermissibleValue(text="application/vnd.pocketlearn")) + setattr(cls, "application/vnd.powerbuilder6", + PermissibleValue(text="application/vnd.powerbuilder6")) + setattr(cls, "application/vnd.powerbuilder6-s", + PermissibleValue(text="application/vnd.powerbuilder6-s")) + setattr(cls, "application/vnd.powerbuilder7", + PermissibleValue(text="application/vnd.powerbuilder7")) + setattr(cls, "application/vnd.powerbuilder75", + PermissibleValue(text="application/vnd.powerbuilder75")) + setattr(cls, "application/vnd.powerbuilder75-s", + PermissibleValue(text="application/vnd.powerbuilder75-s")) + setattr(cls, "application/vnd.powerbuilder7-s", + PermissibleValue(text="application/vnd.powerbuilder7-s")) + setattr(cls, "application/vnd.preminet", + PermissibleValue(text="application/vnd.preminet")) + setattr(cls, "application/vnd.previewsystems.box", + PermissibleValue(text="application/vnd.previewsystems.box")) + setattr(cls, "application/vnd.proteus.magazine", + PermissibleValue(text="application/vnd.proteus.magazine")) + setattr(cls, "application/vnd.psfs", + PermissibleValue(text="application/vnd.psfs")) + setattr(cls, "application/vnd.pt.mundusmundi", + PermissibleValue(text="application/vnd.pt.mundusmundi")) + setattr(cls, "application/vnd.publishare-delta-tree", + PermissibleValue(text="application/vnd.publishare-delta-tree")) + setattr(cls, "application/vnd.pvi.ptid1", + PermissibleValue(text="application/vnd.pvi.ptid1")) + setattr(cls, "application/vnd.pwg-multiplexed", + PermissibleValue(text="application/vnd.pwg-multiplexed")) + setattr(cls, "application/vnd.pwg-xhtml-print+xml", + PermissibleValue(text="application/vnd.pwg-xhtml-print+xml")) + setattr(cls, "application/vnd.qualcomm.brew-app-res", + PermissibleValue(text="application/vnd.qualcomm.brew-app-res")) + setattr(cls, "application/vnd.quarantainenet", + PermissibleValue(text="application/vnd.quarantainenet")) + setattr(cls, "application/vnd.Quark.QuarkXPress", + PermissibleValue(text="application/vnd.Quark.QuarkXPress")) + setattr(cls, "application/vnd.quobject-quoxdocument", + PermissibleValue(text="application/vnd.quobject-quoxdocument")) + setattr(cls, "application/vnd.radisys.moml+xml", + PermissibleValue(text="application/vnd.radisys.moml+xml")) + setattr(cls, "application/vnd.radisys.msml-audit-conf+xml", + PermissibleValue(text="application/vnd.radisys.msml-audit-conf+xml")) + setattr(cls, "application/vnd.radisys.msml-audit-conn+xml", + PermissibleValue(text="application/vnd.radisys.msml-audit-conn+xml")) + setattr(cls, "application/vnd.radisys.msml-audit-dialog+xml", + PermissibleValue(text="application/vnd.radisys.msml-audit-dialog+xml")) + setattr(cls, "application/vnd.radisys.msml-audit-stream+xml", + PermissibleValue(text="application/vnd.radisys.msml-audit-stream+xml")) + setattr(cls, "application/vnd.radisys.msml-audit+xml", + PermissibleValue(text="application/vnd.radisys.msml-audit+xml")) + setattr(cls, "application/vnd.radisys.msml-conf+xml", + PermissibleValue(text="application/vnd.radisys.msml-conf+xml")) + setattr(cls, "application/vnd.radisys.msml-dialog-base+xml", + PermissibleValue(text="application/vnd.radisys.msml-dialog-base+xml")) + setattr(cls, "application/vnd.radisys.msml-dialog-fax-detect+xml", + PermissibleValue(text="application/vnd.radisys.msml-dialog-fax-detect+xml")) + setattr(cls, "application/vnd.radisys.msml-dialog-fax-sendrecv+xml", + PermissibleValue(text="application/vnd.radisys.msml-dialog-fax-sendrecv+xml")) + setattr(cls, "application/vnd.radisys.msml-dialog-group+xml", + PermissibleValue(text="application/vnd.radisys.msml-dialog-group+xml")) + setattr(cls, "application/vnd.radisys.msml-dialog-speech+xml", + PermissibleValue(text="application/vnd.radisys.msml-dialog-speech+xml")) + setattr(cls, "application/vnd.radisys.msml-dialog-transform+xml", + PermissibleValue(text="application/vnd.radisys.msml-dialog-transform+xml")) + setattr(cls, "application/vnd.radisys.msml-dialog+xml", + PermissibleValue(text="application/vnd.radisys.msml-dialog+xml")) + setattr(cls, "application/vnd.radisys.msml+xml", + PermissibleValue(text="application/vnd.radisys.msml+xml")) + setattr(cls, "application/vnd.rainstor.data", + PermissibleValue(text="application/vnd.rainstor.data")) + setattr(cls, "application/vnd.rapid", + PermissibleValue(text="application/vnd.rapid")) + setattr(cls, "application/vnd.rar", + PermissibleValue(text="application/vnd.rar")) + setattr(cls, "application/vnd.realvnc.bed", + PermissibleValue(text="application/vnd.realvnc.bed")) + setattr(cls, "application/vnd.recordare.musicxml", + PermissibleValue(text="application/vnd.recordare.musicxml")) + setattr(cls, "application/vnd.recordare.musicxml+xml", + PermissibleValue(text="application/vnd.recordare.musicxml+xml")) + setattr(cls, "application/vnd.relpipe", + PermissibleValue(text="application/vnd.relpipe")) + setattr(cls, "application/vnd.RenLearn.rlprint", + PermissibleValue(text="application/vnd.RenLearn.rlprint")) + setattr(cls, "application/vnd.resilient.logic", + PermissibleValue(text="application/vnd.resilient.logic")) + setattr(cls, "application/vnd.restful+json", + PermissibleValue(text="application/vnd.restful+json")) + setattr(cls, "application/vnd.rig.cryptonote", + PermissibleValue(text="application/vnd.rig.cryptonote")) + setattr(cls, "application/vnd.route66.link66+xml", + PermissibleValue(text="application/vnd.route66.link66+xml")) + setattr(cls, "audio/1d-interleaved-parityfec", + PermissibleValue(text="audio/1d-interleaved-parityfec")) + setattr(cls, "audio/32kadpcm", + PermissibleValue(text="audio/32kadpcm")) + setattr(cls, "audio/3gpp", + PermissibleValue(text="audio/3gpp")) + setattr(cls, "audio/3gpp2", + PermissibleValue(text="audio/3gpp2")) + setattr(cls, "audio/aac", + PermissibleValue(text="audio/aac")) + setattr(cls, "audio/ac3", + PermissibleValue(text="audio/ac3")) + setattr(cls, "audio/AMR", + PermissibleValue(text="audio/AMR")) + setattr(cls, "audio/AMR-WB", + PermissibleValue(text="audio/AMR-WB")) + setattr(cls, "audio/amr-wb+", + PermissibleValue(text="audio/amr-wb+")) + setattr(cls, "audio/aptx", + PermissibleValue(text="audio/aptx")) + setattr(cls, "audio/asc", + PermissibleValue(text="audio/asc")) + setattr(cls, "audio/ATRAC-ADVANCED-LOSSLESS", + PermissibleValue(text="audio/ATRAC-ADVANCED-LOSSLESS")) + setattr(cls, "audio/ATRAC-X", + PermissibleValue(text="audio/ATRAC-X")) + setattr(cls, "audio/ATRAC3", + PermissibleValue(text="audio/ATRAC3")) + setattr(cls, "audio/basic", + PermissibleValue(text="audio/basic")) + setattr(cls, "audio/BV16", + PermissibleValue(text="audio/BV16")) + setattr(cls, "audio/BV32", + PermissibleValue(text="audio/BV32")) + setattr(cls, "audio/clearmode", + PermissibleValue(text="audio/clearmode")) + setattr(cls, "audio/CN", + PermissibleValue(text="audio/CN")) + setattr(cls, "audio/DAT12", + PermissibleValue(text="audio/DAT12")) + setattr(cls, "audio/dls", + PermissibleValue(text="audio/dls")) + setattr(cls, "audio/dsr-es201108", + PermissibleValue(text="audio/dsr-es201108")) + setattr(cls, "audio/dsr-es202050", + PermissibleValue(text="audio/dsr-es202050")) + setattr(cls, "audio/dsr-es202211", + PermissibleValue(text="audio/dsr-es202211")) + setattr(cls, "audio/dsr-es202212", + PermissibleValue(text="audio/dsr-es202212")) + setattr(cls, "audio/DV", + PermissibleValue(text="audio/DV")) + setattr(cls, "audio/DVI4", + PermissibleValue(text="audio/DVI4")) + setattr(cls, "audio/eac3", + PermissibleValue(text="audio/eac3")) + setattr(cls, "audio/encaprtp", + PermissibleValue(text="audio/encaprtp")) + setattr(cls, "audio/EVRC", + PermissibleValue(text="audio/EVRC")) + setattr(cls, "audio/EVRC-QCP", + PermissibleValue(text="audio/EVRC-QCP")) + setattr(cls, "audio/EVRC0", + PermissibleValue(text="audio/EVRC0")) + setattr(cls, "audio/EVRC1", + PermissibleValue(text="audio/EVRC1")) + setattr(cls, "audio/EVRCB", + PermissibleValue(text="audio/EVRCB")) + setattr(cls, "audio/EVRCB0", + PermissibleValue(text="audio/EVRCB0")) + setattr(cls, "audio/EVRCB1", + PermissibleValue(text="audio/EVRCB1")) + setattr(cls, "audio/EVRCNW", + PermissibleValue(text="audio/EVRCNW")) + setattr(cls, "audio/EVRCNW0", + PermissibleValue(text="audio/EVRCNW0")) + setattr(cls, "audio/EVRCNW1", + PermissibleValue(text="audio/EVRCNW1")) + setattr(cls, "audio/EVRCWB", + PermissibleValue(text="audio/EVRCWB")) + setattr(cls, "audio/EVRCWB0", + PermissibleValue(text="audio/EVRCWB0")) + setattr(cls, "audio/EVRCWB1", + PermissibleValue(text="audio/EVRCWB1")) + setattr(cls, "audio/EVS", + PermissibleValue(text="audio/EVS")) + setattr(cls, "audio/example", + PermissibleValue(text="audio/example")) + setattr(cls, "audio/flac", + PermissibleValue(text="audio/flac")) + setattr(cls, "audio/flexfec", + PermissibleValue(text="audio/flexfec")) + setattr(cls, "audio/fwdred", + PermissibleValue(text="audio/fwdred")) + setattr(cls, "audio/G711-0", + PermissibleValue(text="audio/G711-0")) + setattr(cls, "audio/G719", + PermissibleValue(text="audio/G719")) + setattr(cls, "audio/G7221", + PermissibleValue(text="audio/G7221")) + setattr(cls, "audio/G722", + PermissibleValue(text="audio/G722")) + setattr(cls, "audio/G723", + PermissibleValue(text="audio/G723")) + setattr(cls, "audio/G726-16", + PermissibleValue(text="audio/G726-16")) + setattr(cls, "audio/G726-24", + PermissibleValue(text="audio/G726-24")) + setattr(cls, "audio/G726-32", + PermissibleValue(text="audio/G726-32")) + setattr(cls, "audio/G726-40", + PermissibleValue(text="audio/G726-40")) + setattr(cls, "audio/G728", + PermissibleValue(text="audio/G728")) + setattr(cls, "audio/G729", + PermissibleValue(text="audio/G729")) + setattr(cls, "audio/G7291", + PermissibleValue(text="audio/G7291")) + setattr(cls, "audio/G729D", + PermissibleValue(text="audio/G729D")) + setattr(cls, "audio/G729E", + PermissibleValue(text="audio/G729E")) + setattr(cls, "audio/GSM", + PermissibleValue(text="audio/GSM")) + setattr(cls, "audio/GSM-EFR", + PermissibleValue(text="audio/GSM-EFR")) + setattr(cls, "audio/GSM-HR-08", + PermissibleValue(text="audio/GSM-HR-08")) + setattr(cls, "audio/iLBC", + PermissibleValue(text="audio/iLBC")) + setattr(cls, "audio/ip-mr_v2.5", + PermissibleValue(text="audio/ip-mr_v2.5")) + setattr(cls, "audio/L8", + PermissibleValue(text="audio/L8")) + setattr(cls, "audio/L16", + PermissibleValue(text="audio/L16")) + setattr(cls, "audio/L20", + PermissibleValue(text="audio/L20")) + setattr(cls, "audio/L24", + PermissibleValue(text="audio/L24")) + setattr(cls, "audio/LPC", + PermissibleValue(text="audio/LPC")) + setattr(cls, "audio/matroska", + PermissibleValue(text="audio/matroska")) + setattr(cls, "audio/MELP", + PermissibleValue(text="audio/MELP")) + setattr(cls, "audio/MELP600", + PermissibleValue(text="audio/MELP600")) + setattr(cls, "audio/MELP1200", + PermissibleValue(text="audio/MELP1200")) + setattr(cls, "audio/MELP2400", + PermissibleValue(text="audio/MELP2400")) + setattr(cls, "audio/mhas", + PermissibleValue(text="audio/mhas")) + setattr(cls, "audio/midi-clip", + PermissibleValue(text="audio/midi-clip")) + setattr(cls, "audio/mobile-xmf", + PermissibleValue(text="audio/mobile-xmf")) + setattr(cls, "audio/MPA", + PermissibleValue(text="audio/MPA")) + setattr(cls, "audio/mp4", + PermissibleValue(text="audio/mp4")) + setattr(cls, "audio/MP4A-LATM", + PermissibleValue(text="audio/MP4A-LATM")) + setattr(cls, "audio/mpa-robust", + PermissibleValue(text="audio/mpa-robust")) + setattr(cls, "audio/mpeg", + PermissibleValue(text="audio/mpeg")) + setattr(cls, "audio/mpeg4-generic", + PermissibleValue(text="audio/mpeg4-generic")) + setattr(cls, "audio/ogg", + PermissibleValue(text="audio/ogg")) + setattr(cls, "audio/opus", + PermissibleValue(text="audio/opus")) + setattr(cls, "audio/parityfec", + PermissibleValue(text="audio/parityfec")) + setattr(cls, "audio/PCMA", + PermissibleValue(text="audio/PCMA")) + setattr(cls, "audio/PCMA-WB", + PermissibleValue(text="audio/PCMA-WB")) + setattr(cls, "audio/PCMU", + PermissibleValue(text="audio/PCMU")) + setattr(cls, "audio/PCMU-WB", + PermissibleValue(text="audio/PCMU-WB")) + setattr(cls, "audio/prs.sid", + PermissibleValue(text="audio/prs.sid")) + setattr(cls, "audio/QCELP", + PermissibleValue(text="audio/QCELP")) + setattr(cls, "audio/raptorfec", + PermissibleValue(text="audio/raptorfec")) + setattr(cls, "audio/RED", + PermissibleValue(text="audio/RED")) + setattr(cls, "audio/rtp-enc-aescm128", + PermissibleValue(text="audio/rtp-enc-aescm128")) + setattr(cls, "audio/rtploopback", + PermissibleValue(text="audio/rtploopback")) + setattr(cls, "audio/rtp-midi", + PermissibleValue(text="audio/rtp-midi")) + setattr(cls, "audio/rtx", + PermissibleValue(text="audio/rtx")) + setattr(cls, "audio/scip", + PermissibleValue(text="audio/scip")) + setattr(cls, "audio/SMV", + PermissibleValue(text="audio/SMV")) + setattr(cls, "audio/SMV0", + PermissibleValue(text="audio/SMV0")) + setattr(cls, "audio/SMV-QCP", + PermissibleValue(text="audio/SMV-QCP")) + setattr(cls, "audio/sofa", + PermissibleValue(text="audio/sofa")) + setattr(cls, "audio/sp-midi", + PermissibleValue(text="audio/sp-midi")) + setattr(cls, "audio/speex", + PermissibleValue(text="audio/speex")) + setattr(cls, "audio/t140c", + PermissibleValue(text="audio/t140c")) + setattr(cls, "audio/t38", + PermissibleValue(text="audio/t38")) + setattr(cls, "audio/telephone-event", + PermissibleValue(text="audio/telephone-event")) + setattr(cls, "audio/TETRA_ACELP", + PermissibleValue(text="audio/TETRA_ACELP")) + setattr(cls, "audio/TETRA_ACELP_BB", + PermissibleValue(text="audio/TETRA_ACELP_BB")) + setattr(cls, "audio/tone", + PermissibleValue(text="audio/tone")) + setattr(cls, "audio/TSVCIS", + PermissibleValue(text="audio/TSVCIS")) + setattr(cls, "audio/UEMCLIP", + PermissibleValue(text="audio/UEMCLIP")) + setattr(cls, "audio/ulpfec", + PermissibleValue(text="audio/ulpfec")) + setattr(cls, "audio/usac", + PermissibleValue(text="audio/usac")) + setattr(cls, "audio/VDVI", + PermissibleValue(text="audio/VDVI")) + setattr(cls, "audio/VMR-WB", + PermissibleValue(text="audio/VMR-WB")) + setattr(cls, "audio/vnd.3gpp.iufp", + PermissibleValue(text="audio/vnd.3gpp.iufp")) + setattr(cls, "audio/vnd.4SB", + PermissibleValue(text="audio/vnd.4SB")) + setattr(cls, "audio/vnd.audiokoz", + PermissibleValue(text="audio/vnd.audiokoz")) + setattr(cls, "audio/vnd.CELP", + PermissibleValue(text="audio/vnd.CELP")) + setattr(cls, "audio/vnd.cisco.nse", + PermissibleValue(text="audio/vnd.cisco.nse")) + setattr(cls, "audio/vnd.cmles.radio-events", + PermissibleValue(text="audio/vnd.cmles.radio-events")) + setattr(cls, "audio/vnd.cns.anp1", + PermissibleValue(text="audio/vnd.cns.anp1")) + setattr(cls, "audio/vnd.cns.inf1", + PermissibleValue(text="audio/vnd.cns.inf1")) + setattr(cls, "audio/vnd.dece.audio", + PermissibleValue(text="audio/vnd.dece.audio")) + setattr(cls, "audio/vnd.digital-winds", + PermissibleValue(text="audio/vnd.digital-winds")) + setattr(cls, "audio/vnd.dlna.adts", + PermissibleValue(text="audio/vnd.dlna.adts")) + setattr(cls, "audio/vnd.dolby.heaac.1", + PermissibleValue(text="audio/vnd.dolby.heaac.1")) + setattr(cls, "audio/vnd.dolby.heaac.2", + PermissibleValue(text="audio/vnd.dolby.heaac.2")) + setattr(cls, "audio/vnd.dolby.mlp", + PermissibleValue(text="audio/vnd.dolby.mlp")) + setattr(cls, "audio/vnd.dolby.mps", + PermissibleValue(text="audio/vnd.dolby.mps")) + setattr(cls, "audio/vnd.dolby.pl2", + PermissibleValue(text="audio/vnd.dolby.pl2")) + setattr(cls, "audio/vnd.dolby.pl2x", + PermissibleValue(text="audio/vnd.dolby.pl2x")) + setattr(cls, "audio/vnd.dolby.pl2z", + PermissibleValue(text="audio/vnd.dolby.pl2z")) + setattr(cls, "audio/vnd.dolby.pulse.1", + PermissibleValue(text="audio/vnd.dolby.pulse.1")) + setattr(cls, "audio/vnd.dra", + PermissibleValue(text="audio/vnd.dra")) + setattr(cls, "audio/vnd.dts", + PermissibleValue(text="audio/vnd.dts")) + setattr(cls, "audio/vnd.dts.hd", + PermissibleValue(text="audio/vnd.dts.hd")) + setattr(cls, "audio/vnd.dts.uhd", + PermissibleValue(text="audio/vnd.dts.uhd")) + setattr(cls, "audio/vnd.dvb.file", + PermissibleValue(text="audio/vnd.dvb.file")) + setattr(cls, "audio/vnd.everad.plj", + PermissibleValue(text="audio/vnd.everad.plj")) + setattr(cls, "audio/vnd.hns.audio", + PermissibleValue(text="audio/vnd.hns.audio")) + setattr(cls, "audio/vnd.lucent.voice", + PermissibleValue(text="audio/vnd.lucent.voice")) + setattr(cls, "audio/vnd.ms-playready.media.pya", + PermissibleValue(text="audio/vnd.ms-playready.media.pya")) + setattr(cls, "audio/vnd.nokia.mobile-xmf", + PermissibleValue(text="audio/vnd.nokia.mobile-xmf")) + setattr(cls, "audio/vnd.nortel.vbk", + PermissibleValue(text="audio/vnd.nortel.vbk")) + setattr(cls, "audio/vnd.nuera.ecelp4800", + PermissibleValue(text="audio/vnd.nuera.ecelp4800")) + setattr(cls, "audio/vnd.nuera.ecelp7470", + PermissibleValue(text="audio/vnd.nuera.ecelp7470")) + setattr(cls, "audio/vnd.nuera.ecelp9600", + PermissibleValue(text="audio/vnd.nuera.ecelp9600")) + setattr(cls, "audio/vnd.octel.sbc", + PermissibleValue(text="audio/vnd.octel.sbc")) + setattr(cls, "audio/vnd.presonus.multitrack", + PermissibleValue(text="audio/vnd.presonus.multitrack")) + setattr(cls, "audio/vnd.qcelp", + PermissibleValue(text="audio/vnd.qcelp")) + setattr(cls, "audio/vnd.rhetorex.32kadpcm", + PermissibleValue(text="audio/vnd.rhetorex.32kadpcm")) + setattr(cls, "audio/vnd.rip", + PermissibleValue(text="audio/vnd.rip")) + setattr(cls, "audio/vnd.sealedmedia.softseal.mpeg", + PermissibleValue(text="audio/vnd.sealedmedia.softseal.mpeg")) + setattr(cls, "audio/vnd.vmx.cvsd", + PermissibleValue(text="audio/vnd.vmx.cvsd")) + setattr(cls, "audio/vorbis", + PermissibleValue(text="audio/vorbis")) + setattr(cls, "audio/vorbis-config", + PermissibleValue(text="audio/vorbis-config")) + setattr(cls, "font/collection", + PermissibleValue(text="font/collection")) + setattr(cls, "font/otf", + PermissibleValue(text="font/otf")) + setattr(cls, "font/sfnt", + PermissibleValue(text="font/sfnt")) + setattr(cls, "font/ttf", + PermissibleValue(text="font/ttf")) + setattr(cls, "font/woff", + PermissibleValue(text="font/woff")) + setattr(cls, "font/woff2", + PermissibleValue(text="font/woff2")) + setattr(cls, "haptics/ivs", + PermissibleValue(text="haptics/ivs")) + setattr(cls, "haptics/hjif", + PermissibleValue(text="haptics/hjif")) + setattr(cls, "haptics/hmpg", + PermissibleValue(text="haptics/hmpg")) + setattr(cls, "message/bhttp", + PermissibleValue(text="message/bhttp")) + setattr(cls, "message/CPIM", + PermissibleValue(text="message/CPIM")) + setattr(cls, "message/delivery-status", + PermissibleValue(text="message/delivery-status")) + setattr(cls, "message/disposition-notification", + PermissibleValue(text="message/disposition-notification")) + setattr(cls, "message/example", + PermissibleValue(text="message/example")) + setattr(cls, "message/external-body", + PermissibleValue(text="message/external-body")) + setattr(cls, "message/feedback-report", + PermissibleValue(text="message/feedback-report")) + setattr(cls, "message/global", + PermissibleValue(text="message/global")) + setattr(cls, "message/global-delivery-status", + PermissibleValue(text="message/global-delivery-status")) + setattr(cls, "message/global-disposition-notification", + PermissibleValue(text="message/global-disposition-notification")) + setattr(cls, "message/global-headers", + PermissibleValue(text="message/global-headers")) + setattr(cls, "message/http", + PermissibleValue(text="message/http")) + setattr(cls, "message/imdn+xml", + PermissibleValue(text="message/imdn+xml")) + setattr(cls, "message/mls", + PermissibleValue(text="message/mls")) + setattr(cls, "message/news", + PermissibleValue(text="message/news")) + setattr(cls, "message/ohttp-req", + PermissibleValue(text="message/ohttp-req")) + setattr(cls, "message/ohttp-res", + PermissibleValue(text="message/ohttp-res")) + setattr(cls, "message/partial", + PermissibleValue(text="message/partial")) + setattr(cls, "message/rfc822", + PermissibleValue(text="message/rfc822")) + setattr(cls, "message/s-http", + PermissibleValue(text="message/s-http")) + setattr(cls, "message/sip", + PermissibleValue(text="message/sip")) + setattr(cls, "message/sipfrag", + PermissibleValue(text="message/sipfrag")) + setattr(cls, "message/tracking-status", + PermissibleValue(text="message/tracking-status")) + setattr(cls, "message/vnd.si.simp", + PermissibleValue(text="message/vnd.si.simp")) + setattr(cls, "message/vnd.wfa.wsc", + PermissibleValue(text="message/vnd.wfa.wsc")) + setattr(cls, "image/aces", + PermissibleValue(text="image/aces")) + setattr(cls, "image/apng", + PermissibleValue(text="image/apng")) + setattr(cls, "image/avci", + PermissibleValue(text="image/avci")) + setattr(cls, "image/avcs", + PermissibleValue(text="image/avcs")) + setattr(cls, "image/avif", + PermissibleValue(text="image/avif")) + setattr(cls, "image/bmp", + PermissibleValue(text="image/bmp")) + setattr(cls, "image/cgm", + PermissibleValue(text="image/cgm")) + setattr(cls, "image/dicom-rle", + PermissibleValue(text="image/dicom-rle")) + setattr(cls, "image/dpx", + PermissibleValue(text="image/dpx")) + setattr(cls, "image/emf", + PermissibleValue(text="image/emf")) + setattr(cls, "image/example", + PermissibleValue(text="image/example")) + setattr(cls, "image/fits", + PermissibleValue(text="image/fits")) + setattr(cls, "image/g3fax", + PermissibleValue(text="image/g3fax")) + setattr(cls, "image/gif", + PermissibleValue(text="image/gif")) + setattr(cls, "image/heic", + PermissibleValue(text="image/heic")) + setattr(cls, "image/heic-sequence", + PermissibleValue(text="image/heic-sequence")) + setattr(cls, "image/heif", + PermissibleValue(text="image/heif")) + setattr(cls, "image/heif-sequence", + PermissibleValue(text="image/heif-sequence")) + setattr(cls, "image/hej2k", + PermissibleValue(text="image/hej2k")) + setattr(cls, "image/hsj2", + PermissibleValue(text="image/hsj2")) + setattr(cls, "image/ief", + PermissibleValue(text="image/ief")) + setattr(cls, "image/j2c", + PermissibleValue(text="image/j2c")) + setattr(cls, "image/jls", + PermissibleValue(text="image/jls")) + setattr(cls, "image/jp2", + PermissibleValue(text="image/jp2")) + setattr(cls, "image/jpeg", + PermissibleValue(text="image/jpeg")) + setattr(cls, "image/jph", + PermissibleValue(text="image/jph")) + setattr(cls, "image/jphc", + PermissibleValue(text="image/jphc")) + setattr(cls, "image/jpm", + PermissibleValue(text="image/jpm")) + setattr(cls, "image/jpx", + PermissibleValue(text="image/jpx")) + setattr(cls, "image/jxl", + PermissibleValue(text="image/jxl")) + setattr(cls, "image/jxr", + PermissibleValue(text="image/jxr")) + setattr(cls, "image/jxrA", + PermissibleValue(text="image/jxrA")) + setattr(cls, "image/jxrS", + PermissibleValue(text="image/jxrS")) + setattr(cls, "image/jxs", + PermissibleValue(text="image/jxs")) + setattr(cls, "image/jxsc", + PermissibleValue(text="image/jxsc")) + setattr(cls, "image/jxsi", + PermissibleValue(text="image/jxsi")) + setattr(cls, "image/jxss", + PermissibleValue(text="image/jxss")) + setattr(cls, "image/ktx", + PermissibleValue(text="image/ktx")) + setattr(cls, "image/ktx2", + PermissibleValue(text="image/ktx2")) + setattr(cls, "image/naplps", + PermissibleValue(text="image/naplps")) + setattr(cls, "image/png", + PermissibleValue(text="image/png")) + setattr(cls, "image/prs.btif", + PermissibleValue(text="image/prs.btif")) + setattr(cls, "image/prs.pti", + PermissibleValue(text="image/prs.pti")) + setattr(cls, "image/pwg-raster", + PermissibleValue(text="image/pwg-raster")) + setattr(cls, "image/svg+xml", + PermissibleValue(text="image/svg+xml")) + setattr(cls, "image/t38", + PermissibleValue(text="image/t38")) + setattr(cls, "image/tiff", + PermissibleValue(text="image/tiff")) + setattr(cls, "image/tiff-fx", + PermissibleValue(text="image/tiff-fx")) + setattr(cls, "image/vnd.adobe.photoshop", + PermissibleValue(text="image/vnd.adobe.photoshop")) + setattr(cls, "image/vnd.airzip.accelerator.azv", + PermissibleValue(text="image/vnd.airzip.accelerator.azv")) + setattr(cls, "image/vnd.cns.inf2", + PermissibleValue(text="image/vnd.cns.inf2")) + setattr(cls, "image/vnd.dece.graphic", + PermissibleValue(text="image/vnd.dece.graphic")) + setattr(cls, "image/vnd.djvu", + PermissibleValue(text="image/vnd.djvu")) + setattr(cls, "image/vnd.dwg", + PermissibleValue(text="image/vnd.dwg")) + setattr(cls, "image/vnd.dxf", + PermissibleValue(text="image/vnd.dxf")) + setattr(cls, "image/vnd.dvb.subtitle", + PermissibleValue(text="image/vnd.dvb.subtitle")) + setattr(cls, "image/vnd.fastbidsheet", + PermissibleValue(text="image/vnd.fastbidsheet")) + setattr(cls, "image/vnd.fpx", + PermissibleValue(text="image/vnd.fpx")) + setattr(cls, "image/vnd.fst", + PermissibleValue(text="image/vnd.fst")) + setattr(cls, "image/vnd.fujixerox.edmics-mmr", + PermissibleValue(text="image/vnd.fujixerox.edmics-mmr")) + setattr(cls, "image/vnd.fujixerox.edmics-rlc", + PermissibleValue(text="image/vnd.fujixerox.edmics-rlc")) + setattr(cls, "image/vnd.globalgraphics.pgb", + PermissibleValue(text="image/vnd.globalgraphics.pgb")) + setattr(cls, "image/vnd.microsoft.icon", + PermissibleValue(text="image/vnd.microsoft.icon")) + setattr(cls, "image/vnd.mix", + PermissibleValue(text="image/vnd.mix")) + setattr(cls, "image/vnd.ms-modi", + PermissibleValue(text="image/vnd.ms-modi")) + setattr(cls, "image/vnd.mozilla.apng", + PermissibleValue(text="image/vnd.mozilla.apng")) + setattr(cls, "image/vnd.net-fpx", + PermissibleValue(text="image/vnd.net-fpx")) + setattr(cls, "image/vnd.pco.b16", + PermissibleValue(text="image/vnd.pco.b16")) + setattr(cls, "image/vnd.radiance", + PermissibleValue(text="image/vnd.radiance")) + setattr(cls, "image/vnd.sealed.png", + PermissibleValue(text="image/vnd.sealed.png")) + setattr(cls, "image/vnd.sealedmedia.softseal.gif", + PermissibleValue(text="image/vnd.sealedmedia.softseal.gif")) + setattr(cls, "image/vnd.sealedmedia.softseal.jpg", + PermissibleValue(text="image/vnd.sealedmedia.softseal.jpg")) + setattr(cls, "image/vnd.svf", + PermissibleValue(text="image/vnd.svf")) + setattr(cls, "image/vnd.tencent.tap", + PermissibleValue(text="image/vnd.tencent.tap")) + setattr(cls, "image/vnd.valve.source.texture", + PermissibleValue(text="image/vnd.valve.source.texture")) + setattr(cls, "image/vnd.wap.wbmp", + PermissibleValue(text="image/vnd.wap.wbmp")) + setattr(cls, "image/vnd.xiff", + PermissibleValue(text="image/vnd.xiff")) + setattr(cls, "image/vnd.zbrush.pcx", + PermissibleValue(text="image/vnd.zbrush.pcx")) + setattr(cls, "image/webp", + PermissibleValue(text="image/webp")) + setattr(cls, "image/wmf", + PermissibleValue(text="image/wmf")) + setattr(cls, "image/x-emf", + PermissibleValue(text="image/x-emf")) + setattr(cls, "image/x-wmf", + PermissibleValue(text="image/x-wmf")) + setattr(cls, "multipart/alternative", + PermissibleValue(text="multipart/alternative")) + setattr(cls, "multipart/appledouble", + PermissibleValue(text="multipart/appledouble")) + setattr(cls, "multipart/byteranges", + PermissibleValue(text="multipart/byteranges")) + setattr(cls, "multipart/digest", + PermissibleValue(text="multipart/digest")) + setattr(cls, "multipart/encrypted", + PermissibleValue(text="multipart/encrypted")) + setattr(cls, "multipart/example", + PermissibleValue(text="multipart/example")) + setattr(cls, "multipart/form-data", + PermissibleValue(text="multipart/form-data")) + setattr(cls, "multipart/header-set", + PermissibleValue(text="multipart/header-set")) + setattr(cls, "multipart/mixed", + PermissibleValue(text="multipart/mixed")) + setattr(cls, "multipart/multilingual", + PermissibleValue(text="multipart/multilingual")) + setattr(cls, "multipart/parallel", + PermissibleValue(text="multipart/parallel")) + setattr(cls, "multipart/related", + PermissibleValue(text="multipart/related")) + setattr(cls, "multipart/report", + PermissibleValue(text="multipart/report")) + setattr(cls, "multipart/signed", + PermissibleValue(text="multipart/signed")) + setattr(cls, "multipart/vnd.bint.med-plus", + PermissibleValue(text="multipart/vnd.bint.med-plus")) + setattr(cls, "multipart/voice-message", + PermissibleValue(text="multipart/voice-message")) + setattr(cls, "multipart/x-mixed-replace", + PermissibleValue(text="multipart/x-mixed-replace")) + setattr(cls, "model/3mf", + PermissibleValue(text="model/3mf")) + setattr(cls, "model/e57", + PermissibleValue(text="model/e57")) + setattr(cls, "model/example", + PermissibleValue(text="model/example")) + setattr(cls, "model/gltf-binary", + PermissibleValue(text="model/gltf-binary")) + setattr(cls, "model/gltf+json", + PermissibleValue(text="model/gltf+json")) + setattr(cls, "model/JT", + PermissibleValue(text="model/JT")) + setattr(cls, "model/iges", + PermissibleValue(text="model/iges")) + setattr(cls, "model/mesh", + PermissibleValue(text="model/mesh")) + setattr(cls, "model/mtl", + PermissibleValue(text="model/mtl")) + setattr(cls, "model/obj", + PermissibleValue(text="model/obj")) + setattr(cls, "model/prc", + PermissibleValue(text="model/prc")) + setattr(cls, "model/step", + PermissibleValue(text="model/step")) + setattr(cls, "model/step+xml", + PermissibleValue(text="model/step+xml")) + setattr(cls, "model/step+zip", + PermissibleValue(text="model/step+zip")) + setattr(cls, "model/step-xml+zip", + PermissibleValue(text="model/step-xml+zip")) + setattr(cls, "model/stl", + PermissibleValue(text="model/stl")) + setattr(cls, "model/u3d", + PermissibleValue(text="model/u3d")) + setattr(cls, "model/vnd.bary", + PermissibleValue(text="model/vnd.bary")) + setattr(cls, "model/vnd.cld", + PermissibleValue(text="model/vnd.cld")) + setattr(cls, "model/vnd.collada+xml", + PermissibleValue(text="model/vnd.collada+xml")) + setattr(cls, "model/vnd.dwf", + PermissibleValue(text="model/vnd.dwf")) + setattr(cls, "model/vnd.flatland.3dml", + PermissibleValue(text="model/vnd.flatland.3dml")) + setattr(cls, "model/vnd.gdl", + PermissibleValue(text="model/vnd.gdl")) + setattr(cls, "model/vnd.gs-gdl", + PermissibleValue(text="model/vnd.gs-gdl")) + setattr(cls, "model/vnd.gtw", + PermissibleValue(text="model/vnd.gtw")) + setattr(cls, "model/vnd.moml+xml", + PermissibleValue(text="model/vnd.moml+xml")) + setattr(cls, "model/vnd.mts", + PermissibleValue(text="model/vnd.mts")) + setattr(cls, "model/vnd.opengex", + PermissibleValue(text="model/vnd.opengex")) + setattr(cls, "model/vnd.parasolid.transmit.binary", + PermissibleValue(text="model/vnd.parasolid.transmit.binary")) + setattr(cls, "model/vnd.parasolid.transmit.text", + PermissibleValue(text="model/vnd.parasolid.transmit.text")) + setattr(cls, "model/vnd.pytha.pyox", + PermissibleValue(text="model/vnd.pytha.pyox")) + setattr(cls, "model/vnd.rosette.annotated-data-model", + PermissibleValue(text="model/vnd.rosette.annotated-data-model")) + setattr(cls, "model/vnd.sap.vds", + PermissibleValue(text="model/vnd.sap.vds")) + setattr(cls, "model/vnd.usda", + PermissibleValue(text="model/vnd.usda")) + setattr(cls, "model/vnd.usdz+zip", + PermissibleValue(text="model/vnd.usdz+zip")) + setattr(cls, "model/vnd.valve.source.compiled-map", + PermissibleValue(text="model/vnd.valve.source.compiled-map")) + setattr(cls, "model/vnd.vtu", + PermissibleValue(text="model/vnd.vtu")) + setattr(cls, "model/vrml", + PermissibleValue(text="model/vrml")) + setattr(cls, "model/x3d-vrml", + PermissibleValue(text="model/x3d-vrml")) + setattr(cls, "model/x3d+fastinfoset", + PermissibleValue(text="model/x3d+fastinfoset")) + setattr(cls, "model/x3d+xml", + PermissibleValue(text="model/x3d+xml")) + setattr(cls, "text/1d-interleaved-parityfec", + PermissibleValue(text="text/1d-interleaved-parityfec")) + setattr(cls, "text/cache-manifest", + PermissibleValue(text="text/cache-manifest")) + setattr(cls, "text/calendar", + PermissibleValue(text="text/calendar")) + setattr(cls, "text/cql", + PermissibleValue(text="text/cql")) + setattr(cls, "text/cql-expression", + PermissibleValue(text="text/cql-expression")) + setattr(cls, "text/cql-identifier", + PermissibleValue(text="text/cql-identifier")) + setattr(cls, "text/css", + PermissibleValue(text="text/css")) + setattr(cls, "text/csv", + PermissibleValue(text="text/csv")) + setattr(cls, "text/csv-schema", + PermissibleValue(text="text/csv-schema")) + setattr(cls, "text/directory", + PermissibleValue(text="text/directory")) + setattr(cls, "text/dns", + PermissibleValue(text="text/dns")) + setattr(cls, "text/ecmascript", + PermissibleValue(text="text/ecmascript")) + setattr(cls, "text/encaprtp", + PermissibleValue(text="text/encaprtp")) + setattr(cls, "text/enriched", + PermissibleValue(text="text/enriched")) + setattr(cls, "text/example", + PermissibleValue(text="text/example")) + setattr(cls, "text/fhirpath", + PermissibleValue(text="text/fhirpath")) + setattr(cls, "text/flexfec", + PermissibleValue(text="text/flexfec")) + setattr(cls, "text/fwdred", + PermissibleValue(text="text/fwdred")) + setattr(cls, "text/gff3", + PermissibleValue(text="text/gff3")) + setattr(cls, "text/grammar-ref-list", + PermissibleValue(text="text/grammar-ref-list")) + setattr(cls, "text/hl7v2", + PermissibleValue(text="text/hl7v2")) + setattr(cls, "text/html", + PermissibleValue(text="text/html")) + setattr(cls, "text/javascript", + PermissibleValue(text="text/javascript")) + setattr(cls, "text/jcr-cnd", + PermissibleValue(text="text/jcr-cnd")) + setattr(cls, "text/markdown", + PermissibleValue(text="text/markdown")) + setattr(cls, "text/mizar", + PermissibleValue(text="text/mizar")) + setattr(cls, "text/n3", + PermissibleValue(text="text/n3")) + setattr(cls, "text/parameters", + PermissibleValue(text="text/parameters")) + setattr(cls, "text/parityfec", + PermissibleValue(text="text/parityfec")) + setattr(cls, "text/plain", + PermissibleValue(text="text/plain")) + setattr(cls, "text/provenance-notation", + PermissibleValue(text="text/provenance-notation")) + setattr(cls, "text/prs.fallenstein.rst", + PermissibleValue(text="text/prs.fallenstein.rst")) + setattr(cls, "text/prs.lines.tag", + PermissibleValue(text="text/prs.lines.tag")) + setattr(cls, "text/prs.prop.logic", + PermissibleValue(text="text/prs.prop.logic")) + setattr(cls, "text/prs.texi", + PermissibleValue(text="text/prs.texi")) + setattr(cls, "text/raptorfec", + PermissibleValue(text="text/raptorfec")) + setattr(cls, "text/RED", + PermissibleValue(text="text/RED")) + setattr(cls, "text/rfc822-headers", + PermissibleValue(text="text/rfc822-headers")) + setattr(cls, "text/richtext", + PermissibleValue(text="text/richtext")) + setattr(cls, "text/rtf", + PermissibleValue(text="text/rtf")) + setattr(cls, "text/rtp-enc-aescm128", + PermissibleValue(text="text/rtp-enc-aescm128")) + setattr(cls, "text/rtploopback", + PermissibleValue(text="text/rtploopback")) + setattr(cls, "text/rtx", + PermissibleValue(text="text/rtx")) + setattr(cls, "text/SGML", + PermissibleValue(text="text/SGML")) + setattr(cls, "text/shaclc", + PermissibleValue(text="text/shaclc")) + setattr(cls, "text/shex", + PermissibleValue(text="text/shex")) + setattr(cls, "text/spdx", + PermissibleValue(text="text/spdx")) + setattr(cls, "text/strings", + PermissibleValue(text="text/strings")) + setattr(cls, "text/t140", + PermissibleValue(text="text/t140")) + setattr(cls, "text/tab-separated-values", + PermissibleValue(text="text/tab-separated-values")) + setattr(cls, "text/troff", + PermissibleValue(text="text/troff")) + setattr(cls, "text/turtle", + PermissibleValue(text="text/turtle")) + setattr(cls, "text/ulpfec", + PermissibleValue(text="text/ulpfec")) + setattr(cls, "text/uri-list", + PermissibleValue(text="text/uri-list")) + setattr(cls, "text/vcard", + PermissibleValue(text="text/vcard")) + setattr(cls, "text/vnd.a", + PermissibleValue(text="text/vnd.a")) + setattr(cls, "text/vnd.abc", + PermissibleValue(text="text/vnd.abc")) + setattr(cls, "text/vnd.ascii-art", + PermissibleValue(text="text/vnd.ascii-art")) + setattr(cls, "text/vnd.curl", + PermissibleValue(text="text/vnd.curl")) + setattr(cls, "text/vnd.debian.copyright", + PermissibleValue(text="text/vnd.debian.copyright")) + setattr(cls, "text/vnd.DMClientScript", + PermissibleValue(text="text/vnd.DMClientScript")) + setattr(cls, "text/vnd.dvb.subtitle", + PermissibleValue(text="text/vnd.dvb.subtitle")) + setattr(cls, "text/vnd.esmertec.theme-descriptor", + PermissibleValue(text="text/vnd.esmertec.theme-descriptor")) + setattr(cls, "text/vnd.exchangeable", + PermissibleValue(text="text/vnd.exchangeable")) + setattr(cls, "text/vnd.familysearch.gedcom", + PermissibleValue(text="text/vnd.familysearch.gedcom")) + setattr(cls, "text/vnd.ficlab.flt", + PermissibleValue(text="text/vnd.ficlab.flt")) + setattr(cls, "text/vnd.fly", + PermissibleValue(text="text/vnd.fly")) + setattr(cls, "text/vnd.fmi.flexstor", + PermissibleValue(text="text/vnd.fmi.flexstor")) + setattr(cls, "text/vnd.gml", + PermissibleValue(text="text/vnd.gml")) + setattr(cls, "text/vnd.graphviz", + PermissibleValue(text="text/vnd.graphviz")) + setattr(cls, "text/vnd.hans", + PermissibleValue(text="text/vnd.hans")) + setattr(cls, "text/vnd.hgl", + PermissibleValue(text="text/vnd.hgl")) + setattr(cls, "text/vnd.in3d.3dml", + PermissibleValue(text="text/vnd.in3d.3dml")) + setattr(cls, "text/vnd.in3d.spot", + PermissibleValue(text="text/vnd.in3d.spot")) + setattr(cls, "text/vnd.IPTC.NewsML", + PermissibleValue(text="text/vnd.IPTC.NewsML")) + setattr(cls, "text/vnd.IPTC.NITF", + PermissibleValue(text="text/vnd.IPTC.NITF")) + setattr(cls, "text/vnd.latex-z", + PermissibleValue(text="text/vnd.latex-z")) + setattr(cls, "text/vnd.motorola.reflex", + PermissibleValue(text="text/vnd.motorola.reflex")) + setattr(cls, "text/vnd.ms-mediapackage", + PermissibleValue(text="text/vnd.ms-mediapackage")) + setattr(cls, "text/vnd.net2phone.commcenter.command", + PermissibleValue(text="text/vnd.net2phone.commcenter.command")) + setattr(cls, "text/vnd.radisys.msml-basic-layout", + PermissibleValue(text="text/vnd.radisys.msml-basic-layout")) + setattr(cls, "text/vnd.senx.warpscript", + PermissibleValue(text="text/vnd.senx.warpscript")) + setattr(cls, "text/vnd.si.uricatalogue", + PermissibleValue(text="text/vnd.si.uricatalogue")) + setattr(cls, "text/vnd.sun.j2me.app-descriptor", + PermissibleValue(text="text/vnd.sun.j2me.app-descriptor")) + setattr(cls, "text/vnd.sosi", + PermissibleValue(text="text/vnd.sosi")) + setattr(cls, "text/vnd.trolltech.linguist", + PermissibleValue(text="text/vnd.trolltech.linguist")) + setattr(cls, "text/vnd.vcf", + PermissibleValue(text="text/vnd.vcf")) + setattr(cls, "text/vnd.wap.si", + PermissibleValue(text="text/vnd.wap.si")) + setattr(cls, "text/vnd.wap.sl", + PermissibleValue(text="text/vnd.wap.sl")) + setattr(cls, "text/vnd.wap.wml", + PermissibleValue(text="text/vnd.wap.wml")) + setattr(cls, "text/vnd.wap.wmlscript", + PermissibleValue(text="text/vnd.wap.wmlscript")) + setattr(cls, "text/vnd.zoo.kcl", + PermissibleValue(text="text/vnd.zoo.kcl")) + setattr(cls, "text/vtt", + PermissibleValue(text="text/vtt")) + setattr(cls, "text/wgsl", + PermissibleValue(text="text/wgsl")) + setattr(cls, "text/xml", + PermissibleValue(text="text/xml")) + setattr(cls, "text/xml-external-parsed-entity", + PermissibleValue(text="text/xml-external-parsed-entity")) + setattr(cls, "video/1d-interleaved-parityfec", + PermissibleValue(text="video/1d-interleaved-parityfec")) + setattr(cls, "video/3gpp", + PermissibleValue(text="video/3gpp")) + setattr(cls, "video/3gpp2", + PermissibleValue(text="video/3gpp2")) + setattr(cls, "video/3gpp-tt", + PermissibleValue(text="video/3gpp-tt")) + setattr(cls, "video/AV1", + PermissibleValue(text="video/AV1")) + setattr(cls, "video/BMPEG", + PermissibleValue(text="video/BMPEG")) + setattr(cls, "video/BT656", + PermissibleValue(text="video/BT656")) + setattr(cls, "video/CelB", + PermissibleValue(text="video/CelB")) + setattr(cls, "video/DV", + PermissibleValue(text="video/DV")) + setattr(cls, "video/encaprtp", + PermissibleValue(text="video/encaprtp")) + setattr(cls, "video/evc", + PermissibleValue(text="video/evc")) + setattr(cls, "video/example", + PermissibleValue(text="video/example")) + setattr(cls, "video/FFV1", + PermissibleValue(text="video/FFV1")) + setattr(cls, "video/flexfec", + PermissibleValue(text="video/flexfec")) + setattr(cls, "video/H261", + PermissibleValue(text="video/H261")) + setattr(cls, "video/H263", + PermissibleValue(text="video/H263")) + setattr(cls, "video/H263-1998", + PermissibleValue(text="video/H263-1998")) + setattr(cls, "video/H263-2000", + PermissibleValue(text="video/H263-2000")) + setattr(cls, "video/H264", + PermissibleValue(text="video/H264")) + setattr(cls, "video/H264-RCDO", + PermissibleValue(text="video/H264-RCDO")) + setattr(cls, "video/H264-SVC", + PermissibleValue(text="video/H264-SVC")) + setattr(cls, "video/H265", + PermissibleValue(text="video/H265")) + setattr(cls, "video/H266", + PermissibleValue(text="video/H266")) + setattr(cls, "video/iso.segment", + PermissibleValue(text="video/iso.segment")) + setattr(cls, "video/JPEG", + PermissibleValue(text="video/JPEG")) + setattr(cls, "video/jpeg2000", + PermissibleValue(text="video/jpeg2000")) + setattr(cls, "video/jxsv", + PermissibleValue(text="video/jxsv")) + setattr(cls, "video/matroska", + PermissibleValue(text="video/matroska")) + setattr(cls, "video/matroska-3d", + PermissibleValue(text="video/matroska-3d")) + setattr(cls, "video/mj2", + PermissibleValue(text="video/mj2")) + setattr(cls, "video/MP1S", + PermissibleValue(text="video/MP1S")) + setattr(cls, "video/MP2P", + PermissibleValue(text="video/MP2P")) + setattr(cls, "video/MP2T", + PermissibleValue(text="video/MP2T")) + setattr(cls, "video/mp4", + PermissibleValue(text="video/mp4")) + setattr(cls, "video/MP4V-ES", + PermissibleValue(text="video/MP4V-ES")) + setattr(cls, "video/MPV", + PermissibleValue(text="video/MPV")) + setattr(cls, "video/mpeg", + PermissibleValue(text="video/mpeg")) + setattr(cls, "video/mpeg4-generic", + PermissibleValue(text="video/mpeg4-generic")) + setattr(cls, "video/nv", + PermissibleValue(text="video/nv")) + setattr(cls, "video/ogg", + PermissibleValue(text="video/ogg")) + setattr(cls, "video/parityfec", + PermissibleValue(text="video/parityfec")) + setattr(cls, "video/pointer", + PermissibleValue(text="video/pointer")) + setattr(cls, "video/quicktime", + PermissibleValue(text="video/quicktime")) + setattr(cls, "video/raptorfec", + PermissibleValue(text="video/raptorfec")) + setattr(cls, "video/raw", + PermissibleValue(text="video/raw")) + setattr(cls, "video/rtp-enc-aescm128", + PermissibleValue(text="video/rtp-enc-aescm128")) + setattr(cls, "video/rtploopback", + PermissibleValue(text="video/rtploopback")) + setattr(cls, "video/rtx", + PermissibleValue(text="video/rtx")) + setattr(cls, "video/scip", + PermissibleValue(text="video/scip")) + setattr(cls, "video/smpte291", + PermissibleValue(text="video/smpte291")) + setattr(cls, "video/SMPTE292M", + PermissibleValue(text="video/SMPTE292M")) + setattr(cls, "video/ulpfec", + PermissibleValue(text="video/ulpfec")) + setattr(cls, "video/vc1", + PermissibleValue(text="video/vc1")) + setattr(cls, "video/vc2", + PermissibleValue(text="video/vc2")) + setattr(cls, "video/vnd.CCTV", + PermissibleValue(text="video/vnd.CCTV")) + setattr(cls, "video/vnd.dece.hd", + PermissibleValue(text="video/vnd.dece.hd")) + setattr(cls, "video/vnd.dece.mobile", + PermissibleValue(text="video/vnd.dece.mobile")) + setattr(cls, "video/vnd.dece.mp4", + PermissibleValue(text="video/vnd.dece.mp4")) + setattr(cls, "video/vnd.dece.pd", + PermissibleValue(text="video/vnd.dece.pd")) + setattr(cls, "video/vnd.dece.sd", + PermissibleValue(text="video/vnd.dece.sd")) + setattr(cls, "video/vnd.dece.video", + PermissibleValue(text="video/vnd.dece.video")) + setattr(cls, "video/vnd.directv.mpeg", + PermissibleValue(text="video/vnd.directv.mpeg")) + setattr(cls, "video/vnd.directv.mpeg-tts", + PermissibleValue(text="video/vnd.directv.mpeg-tts")) + setattr(cls, "video/vnd.dlna.mpeg-tts", + PermissibleValue(text="video/vnd.dlna.mpeg-tts")) + setattr(cls, "video/vnd.dvb.file", + PermissibleValue(text="video/vnd.dvb.file")) + setattr(cls, "video/vnd.fvt", + PermissibleValue(text="video/vnd.fvt")) + setattr(cls, "video/vnd.hns.video", + PermissibleValue(text="video/vnd.hns.video")) + setattr(cls, "video/vnd.iptvforum.1dparityfec-1010", + PermissibleValue(text="video/vnd.iptvforum.1dparityfec-1010")) + setattr(cls, "video/vnd.iptvforum.1dparityfec-2005", + PermissibleValue(text="video/vnd.iptvforum.1dparityfec-2005")) + setattr(cls, "video/vnd.iptvforum.2dparityfec-1010", + PermissibleValue(text="video/vnd.iptvforum.2dparityfec-1010")) + setattr(cls, "video/vnd.iptvforum.2dparityfec-2005", + PermissibleValue(text="video/vnd.iptvforum.2dparityfec-2005")) + setattr(cls, "video/vnd.iptvforum.ttsavc", + PermissibleValue(text="video/vnd.iptvforum.ttsavc")) + setattr(cls, "video/vnd.iptvforum.ttsmpeg2", + PermissibleValue(text="video/vnd.iptvforum.ttsmpeg2")) + setattr(cls, "video/vnd.motorola.video", + PermissibleValue(text="video/vnd.motorola.video")) + setattr(cls, "video/vnd.motorola.videop", + PermissibleValue(text="video/vnd.motorola.videop")) + setattr(cls, "video/vnd.mpegurl", + PermissibleValue(text="video/vnd.mpegurl")) + setattr(cls, "video/vnd.ms-playready.media.pyv", + PermissibleValue(text="video/vnd.ms-playready.media.pyv")) + setattr(cls, "video/vnd.nokia.interleaved-multimedia", + PermissibleValue(text="video/vnd.nokia.interleaved-multimedia")) + setattr(cls, "video/vnd.nokia.mp4vr", + PermissibleValue(text="video/vnd.nokia.mp4vr")) + setattr(cls, "video/vnd.nokia.videovoip", + PermissibleValue(text="video/vnd.nokia.videovoip")) + setattr(cls, "video/vnd.objectvideo", + PermissibleValue(text="video/vnd.objectvideo")) + setattr(cls, "video/vnd.radgamettools.bink", + PermissibleValue(text="video/vnd.radgamettools.bink")) + setattr(cls, "video/vnd.radgamettools.smacker", + PermissibleValue(text="video/vnd.radgamettools.smacker")) + setattr(cls, "video/vnd.sealed.mpeg1", + PermissibleValue(text="video/vnd.sealed.mpeg1")) + setattr(cls, "video/vnd.sealed.mpeg4", + PermissibleValue(text="video/vnd.sealed.mpeg4")) + setattr(cls, "video/vnd.sealed.swf", + PermissibleValue(text="video/vnd.sealed.swf")) + setattr(cls, "video/vnd.sealedmedia.softseal.mov", + PermissibleValue(text="video/vnd.sealedmedia.softseal.mov")) + setattr(cls, "video/vnd.uvvu.mp4", + PermissibleValue(text="video/vnd.uvvu.mp4")) + setattr(cls, "video/vnd.youtube.yt", + PermissibleValue(text="video/vnd.youtube.yt")) + setattr(cls, "video/vnd.vivo", + PermissibleValue(text="video/vnd.vivo")) + setattr(cls, "video/VP8", + PermissibleValue(text="video/VP8")) + setattr(cls, "video/VP9", + PermissibleValue(text="video/VP9")) + +class PublicIpAddressProvisioningTypes(EnumDefinitionImpl): + + floating = PermissibleValue( + text="floating", + description="TBD") + fixed = PermissibleValue( + text="fixed", + description="TBD") + + _defn = EnumDefinition( + name="PublicIpAddressProvisioningTypes", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "provider-network", + PermissibleValue( + text="provider-network", + description="TBD")) + +class IpVersionTypes(EnumDefinitionImpl): + + IPv4 = PermissibleValue(text="IPv4") + IPv6 = PermissibleValue(text="IPv6") + + _defn = EnumDefinition( + name="IpVersionTypes", + ) + +class PXEDiskType(EnumDefinitionImpl): + + WINPE = PermissibleValue(text="WINPE") + ISO = PermissibleValue(text="ISO") + + _defn = EnumDefinition( + name="PXEDiskType", + ) + +class RegionCode(EnumDefinitionImpl): + """ + ISO 3166 standard region code. + """ + _defn = EnumDefinition( + name="RegionCode", + description="ISO 3166 standard region code.", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "AD-02", + PermissibleValue( + text="AD-02", + description="Region code for Canillo.")) + setattr(cls, "AD-03", + PermissibleValue( + text="AD-03", + description="Region code for Encamp.")) + setattr(cls, "AD-04", + PermissibleValue( + text="AD-04", + description="Region code for La Massana.")) + setattr(cls, "AD-05", + PermissibleValue( + text="AD-05", + description="Region code for Ordino.")) + setattr(cls, "AD-06", + PermissibleValue( + text="AD-06", + description="Region code for Sant Julià de Lòria.")) + setattr(cls, "AD-07", + PermissibleValue( + text="AD-07", + description="Region code for Andorra la Vella.")) + setattr(cls, "AD-08", + PermissibleValue( + text="AD-08", + description="Region code for Escaldes-Engordany.")) + setattr(cls, "AE-AJ", + PermissibleValue( + text="AE-AJ", + description="Region code for ‘Ajmān.")) + setattr(cls, "AE-AZ", + PermissibleValue( + text="AE-AZ", + description="Region code for Abū Z̧aby.")) + setattr(cls, "AE-DU", + PermissibleValue( + text="AE-DU", + description="Region code for Dubayy.")) + setattr(cls, "AE-FU", + PermissibleValue( + text="AE-FU", + description="Region code for Al Fujayrah.")) + setattr(cls, "AE-RK", + PermissibleValue( + text="AE-RK", + description="Region code for Ra’s al Khaymah.")) + setattr(cls, "AE-SH", + PermissibleValue( + text="AE-SH", + description="Region code for Ash Shāriqah.")) + setattr(cls, "AE-UQ", + PermissibleValue( + text="AE-UQ", + description="Region code for Umm al Qaywayn.")) + setattr(cls, "AF-BAL", + PermissibleValue( + text="AF-BAL", + description="Region code for Balkh.")) + setattr(cls, "AF-BAM", + PermissibleValue( + text="AF-BAM", + description="Region code for Bāmyān.")) + setattr(cls, "AF-BDG", + PermissibleValue( + text="AF-BDG", + description="Region code for Bādghīs.")) + setattr(cls, "AF-BDS", + PermissibleValue( + text="AF-BDS", + description="Region code for Badakhshān.")) + setattr(cls, "AF-BGL", + PermissibleValue( + text="AF-BGL", + description="Region code for Baghlān.")) + setattr(cls, "AF-DAY", + PermissibleValue( + text="AF-DAY", + description="Region code for Dāykundī.")) + setattr(cls, "AF-FRA", + PermissibleValue( + text="AF-FRA", + description="Region code for Farāh.")) + setattr(cls, "AF-FYB", + PermissibleValue( + text="AF-FYB", + description="Region code for Fāryāb.")) + setattr(cls, "AF-GHA", + PermissibleValue( + text="AF-GHA", + description="Region code for Ghaznī.")) + setattr(cls, "AF-GHO", + PermissibleValue( + text="AF-GHO", + description="Region code for Ghōr.")) + setattr(cls, "AF-HEL", + PermissibleValue( + text="AF-HEL", + description="Region code for Helmand.")) + setattr(cls, "AF-HER", + PermissibleValue( + text="AF-HER", + description="Region code for Herāt.")) + setattr(cls, "AF-JOW", + PermissibleValue( + text="AF-JOW", + description="Region code for Jowzjān.")) + setattr(cls, "AF-KAB", + PermissibleValue( + text="AF-KAB", + description="Region code for Kābul.")) + setattr(cls, "AF-KAN", + PermissibleValue( + text="AF-KAN", + description="Region code for Kandahār.")) + setattr(cls, "AF-KAP", + PermissibleValue( + text="AF-KAP", + description="Region code for Kāpīsā.")) + setattr(cls, "AF-KDZ", + PermissibleValue( + text="AF-KDZ", + description="Region code for Kunduz.")) + setattr(cls, "AF-KHO", + PermissibleValue( + text="AF-KHO", + description="Region code for Khōst.")) + setattr(cls, "AF-KNR", + PermissibleValue( + text="AF-KNR", + description="Region code for Kunaṟ.")) + setattr(cls, "AF-LAG", + PermissibleValue( + text="AF-LAG", + description="Region code for Laghmān.")) + setattr(cls, "AF-LOG", + PermissibleValue( + text="AF-LOG", + description="Region code for Lōgar.")) + setattr(cls, "AF-NAN", + PermissibleValue( + text="AF-NAN", + description="Region code for Nangarhār.")) + setattr(cls, "AF-NIM", + PermissibleValue( + text="AF-NIM", + description="Region code for Nīmrōz.")) + setattr(cls, "AF-NUR", + PermissibleValue( + text="AF-NUR", + description="Region code for Nūristān.")) + setattr(cls, "AF-PAN", + PermissibleValue( + text="AF-PAN", + description="Region code for Panjshayr.")) + setattr(cls, "AF-PAR", + PermissibleValue( + text="AF-PAR", + description="Region code for Parwān.")) + setattr(cls, "AF-PIA", + PermissibleValue( + text="AF-PIA", + description="Region code for Paktiyā.")) + setattr(cls, "AF-PKA", + PermissibleValue( + text="AF-PKA", + description="Region code for Paktīkā.")) + setattr(cls, "AF-SAM", + PermissibleValue( + text="AF-SAM", + description="Region code for Samangān.")) + setattr(cls, "AF-SAR", + PermissibleValue( + text="AF-SAR", + description="Region code for Sar-e Pul.")) + setattr(cls, "AF-TAK", + PermissibleValue( + text="AF-TAK", + description="Region code for Takhār.")) + setattr(cls, "AF-URU", + PermissibleValue( + text="AF-URU", + description="Region code for Uruzgān.")) + setattr(cls, "AF-WAR", + PermissibleValue( + text="AF-WAR", + description="Region code for Wardak.")) + setattr(cls, "AF-ZAB", + PermissibleValue( + text="AF-ZAB", + description="Region code for Zābul.")) + setattr(cls, "AG-03", + PermissibleValue( + text="AG-03", + description="Region code for Saint George.")) + setattr(cls, "AG-04", + PermissibleValue( + text="AG-04", + description="Region code for Saint John.")) + setattr(cls, "AG-05", + PermissibleValue( + text="AG-05", + description="Region code for Saint Mary.")) + setattr(cls, "AG-06", + PermissibleValue( + text="AG-06", + description="Region code for Saint Paul.")) + setattr(cls, "AG-07", + PermissibleValue( + text="AG-07", + description="Region code for Saint Peter.")) + setattr(cls, "AG-08", + PermissibleValue( + text="AG-08", + description="Region code for Saint Philip.")) + setattr(cls, "AG-10", + PermissibleValue( + text="AG-10", + description="Region code for Barbuda.")) + setattr(cls, "AG-11", + PermissibleValue( + text="AG-11", + description="Region code for Redonda.")) + setattr(cls, "AL-01", + PermissibleValue( + text="AL-01", + description="Region code for Berat.")) + setattr(cls, "AL-02", + PermissibleValue( + text="AL-02", + description="Region code for Durrës.")) + setattr(cls, "AL-03", + PermissibleValue( + text="AL-03", + description="Region code for Elbasan.")) + setattr(cls, "AL-04", + PermissibleValue( + text="AL-04", + description="Region code for Fier.")) + setattr(cls, "AL-05", + PermissibleValue( + text="AL-05", + description="Region code for Gjirokastër.")) + setattr(cls, "AL-06", + PermissibleValue( + text="AL-06", + description="Region code for Korçë.")) + setattr(cls, "AL-07", + PermissibleValue( + text="AL-07", + description="Region code for Kukës.")) + setattr(cls, "AL-08", + PermissibleValue( + text="AL-08", + description="Region code for Lezhë.")) + setattr(cls, "AL-09", + PermissibleValue( + text="AL-09", + description="Region code for Dibër.")) + setattr(cls, "AL-10", + PermissibleValue( + text="AL-10", + description="Region code for Shkodër.")) + setattr(cls, "AL-11", + PermissibleValue( + text="AL-11", + description="Region code for Tiranë.")) + setattr(cls, "AL-12", + PermissibleValue( + text="AL-12", + description="Region code for Vlorë.")) + setattr(cls, "AM-AG", + PermissibleValue( + text="AM-AG", + description="Region code for Aragac̣otn.")) + setattr(cls, "AM-AR", + PermissibleValue( + text="AM-AR", + description="Region code for Ararat.")) + setattr(cls, "AM-AV", + PermissibleValue( + text="AM-AV", + description="Region code for Armavir.")) + setattr(cls, "AM-ER", + PermissibleValue( + text="AM-ER", + description="Region code for Erevan.")) + setattr(cls, "AM-GR", + PermissibleValue( + text="AM-GR", + description="Region code for Geġark'unik'.")) + setattr(cls, "AM-KT", + PermissibleValue( + text="AM-KT", + description="Region code for Kotayk'.")) + setattr(cls, "AM-LO", + PermissibleValue( + text="AM-LO", + description="Region code for Loṙi.")) + setattr(cls, "AM-SH", + PermissibleValue( + text="AM-SH", + description="Region code for Širak.")) + setattr(cls, "AM-SU", + PermissibleValue( + text="AM-SU", + description="Region code for Syunik'.")) + setattr(cls, "AM-TV", + PermissibleValue( + text="AM-TV", + description="Region code for Tavuš.")) + setattr(cls, "AM-VD", + PermissibleValue( + text="AM-VD", + description="Region code for Vayoć Jor.")) + setattr(cls, "AO-BGO", + PermissibleValue( + text="AO-BGO", + description="Region code for Bengo.")) + setattr(cls, "AO-BGU", + PermissibleValue( + text="AO-BGU", + description="Region code for Benguela.")) + setattr(cls, "AO-BIE", + PermissibleValue( + text="AO-BIE", + description="Region code for Bié.")) + setattr(cls, "AO-CAB", + PermissibleValue( + text="AO-CAB", + description="Region code for Cabinda.")) + setattr(cls, "AO-CCU", + PermissibleValue( + text="AO-CCU", + description="Region code for Cuando Cubango.")) + setattr(cls, "AO-CNN", + PermissibleValue( + text="AO-CNN", + description="Region code for Cunene.")) + setattr(cls, "AO-CNO", + PermissibleValue( + text="AO-CNO", + description="Region code for Cuanza-Norte.")) + setattr(cls, "AO-CUS", + PermissibleValue( + text="AO-CUS", + description="Region code for Cuanza-Sul.")) + setattr(cls, "AO-HUA", + PermissibleValue( + text="AO-HUA", + description="Region code for Huambo.")) + setattr(cls, "AO-HUI", + PermissibleValue( + text="AO-HUI", + description="Region code for Huíla.")) + setattr(cls, "AO-LNO", + PermissibleValue( + text="AO-LNO", + description="Region code for Lunda-Norte.")) + setattr(cls, "AO-LSU", + PermissibleValue( + text="AO-LSU", + description="Region code for Lunda-Sul.")) + setattr(cls, "AO-LUA", + PermissibleValue( + text="AO-LUA", + description="Region code for Luanda.")) + setattr(cls, "AO-MAL", + PermissibleValue( + text="AO-MAL", + description="Region code for Malange.")) + setattr(cls, "AO-MOX", + PermissibleValue( + text="AO-MOX", + description="Region code for Moxico.")) + setattr(cls, "AO-NAM", + PermissibleValue( + text="AO-NAM", + description="Region code for Namibe.")) + setattr(cls, "AO-UIG", + PermissibleValue( + text="AO-UIG", + description="Region code for Uíge.")) + setattr(cls, "AO-ZAI", + PermissibleValue( + text="AO-ZAI", + description="Region code for Zaire.")) + setattr(cls, "AR-A", + PermissibleValue( + text="AR-A", + description="Region code for Salta.")) + setattr(cls, "AR-B", + PermissibleValue( + text="AR-B", + description="Region code for Buenos Aires.")) + setattr(cls, "AR-C", + PermissibleValue( + text="AR-C", + description="Region code for Ciudad Autónoma de Buenos Aires.")) + setattr(cls, "AR-D", + PermissibleValue( + text="AR-D", + description="Region code for San Luis.")) + setattr(cls, "AR-E", + PermissibleValue( + text="AR-E", + description="Region code for Entre Ríos.")) + setattr(cls, "AR-F", + PermissibleValue( + text="AR-F", + description="Region code for La Rioja.")) + setattr(cls, "AR-G", + PermissibleValue( + text="AR-G", + description="Region code for Santiago del Estero.")) + setattr(cls, "AR-H", + PermissibleValue( + text="AR-H", + description="Region code for Chaco.")) + setattr(cls, "AR-J", + PermissibleValue( + text="AR-J", + description="Region code for San Juan.")) + setattr(cls, "AR-K", + PermissibleValue( + text="AR-K", + description="Region code for Catamarca.")) + setattr(cls, "AR-L", + PermissibleValue( + text="AR-L", + description="Region code for La Pampa.")) + setattr(cls, "AR-M", + PermissibleValue( + text="AR-M", + description="Region code for Mendoza.")) + setattr(cls, "AR-N", + PermissibleValue( + text="AR-N", + description="Region code for Misiones.")) + setattr(cls, "AR-P", + PermissibleValue( + text="AR-P", + description="Region code for Formosa.")) + setattr(cls, "AR-Q", + PermissibleValue( + text="AR-Q", + description="Region code for Neuquén.")) + setattr(cls, "AR-R", + PermissibleValue( + text="AR-R", + description="Region code for Río Negro.")) + setattr(cls, "AR-S", + PermissibleValue( + text="AR-S", + description="Region code for Santa Fe.")) + setattr(cls, "AR-T", + PermissibleValue( + text="AR-T", + description="Region code for Tucumán.")) + setattr(cls, "AR-U", + PermissibleValue( + text="AR-U", + description="Region code for Chubut.")) + setattr(cls, "AR-V", + PermissibleValue( + text="AR-V", + description="Region code for Tierra del Fuego.")) + setattr(cls, "AR-W", + PermissibleValue( + text="AR-W", + description="Region code for Corrientes.")) + setattr(cls, "AR-X", + PermissibleValue( + text="AR-X", + description="Region code for Córdoba.")) + setattr(cls, "AR-Y", + PermissibleValue( + text="AR-Y", + description="Region code for Jujuy.")) + setattr(cls, "AR-Z", + PermissibleValue( + text="AR-Z", + description="Region code for Santa Cruz.")) + setattr(cls, "AT-1", + PermissibleValue( + text="AT-1", + description="Region code for Burgenland.")) + setattr(cls, "AT-2", + PermissibleValue( + text="AT-2", + description="Region code for Kärnten.")) + setattr(cls, "AT-3", + PermissibleValue( + text="AT-3", + description="Region code for Niederösterreich.")) + setattr(cls, "AT-4", + PermissibleValue( + text="AT-4", + description="Region code for Oberösterreich.")) + setattr(cls, "AT-5", + PermissibleValue( + text="AT-5", + description="Region code for Salzburg.")) + setattr(cls, "AT-6", + PermissibleValue( + text="AT-6", + description="Region code for Steiermark.")) + setattr(cls, "AT-7", + PermissibleValue( + text="AT-7", + description="Region code for Tirol.")) + setattr(cls, "AT-8", + PermissibleValue( + text="AT-8", + description="Region code for Vorarlberg.")) + setattr(cls, "AT-9", + PermissibleValue( + text="AT-9", + description="Region code for Wien.")) + setattr(cls, "AU-ACT", + PermissibleValue( + text="AU-ACT", + description="Region code for Australian Capital Territory.")) + setattr(cls, "AU-NSW", + PermissibleValue( + text="AU-NSW", + description="Region code for New South Wales.")) + setattr(cls, "AU-NT", + PermissibleValue( + text="AU-NT", + description="Region code for Northern Territory.")) + setattr(cls, "AU-QLD", + PermissibleValue( + text="AU-QLD", + description="Region code for Queensland.")) + setattr(cls, "AU-SA", + PermissibleValue( + text="AU-SA", + description="Region code for South Australia.")) + setattr(cls, "AU-TAS", + PermissibleValue( + text="AU-TAS", + description="Region code for Tasmania.")) + setattr(cls, "AU-VIC", + PermissibleValue( + text="AU-VIC", + description="Region code for Victoria.")) + setattr(cls, "AU-WA", + PermissibleValue( + text="AU-WA", + description="Region code for Western Australia.")) + setattr(cls, "AZ-ABS", + PermissibleValue( + text="AZ-ABS", + description="Region code for Abşeron.")) + setattr(cls, "AZ-AGA", + PermissibleValue( + text="AZ-AGA", + description="Region code for Ağstafa.")) + setattr(cls, "AZ-AGC", + PermissibleValue( + text="AZ-AGC", + description="Region code for Ağcabədi.")) + setattr(cls, "AZ-AGM", + PermissibleValue( + text="AZ-AGM", + description="Region code for Ağdam.")) + setattr(cls, "AZ-AGS", + PermissibleValue( + text="AZ-AGS", + description="Region code for Ağdaş.")) + setattr(cls, "AZ-AGU", + PermissibleValue( + text="AZ-AGU", + description="Region code for Ağsu.")) + setattr(cls, "AZ-AST", + PermissibleValue( + text="AZ-AST", + description="Region code for Astara.")) + setattr(cls, "AZ-BA", + PermissibleValue( + text="AZ-BA", + description="Region code for Bakı.")) + setattr(cls, "AZ-BAB", + PermissibleValue( + text="AZ-BAB", + description="Region code for Babək.")) + setattr(cls, "AZ-BAL", + PermissibleValue( + text="AZ-BAL", + description="Region code for Balakən.")) + setattr(cls, "AZ-BAR", + PermissibleValue( + text="AZ-BAR", + description="Region code for Bərdə.")) + setattr(cls, "AZ-BEY", + PermissibleValue( + text="AZ-BEY", + description="Region code for Beyləqan.")) + setattr(cls, "AZ-BIL", + PermissibleValue( + text="AZ-BIL", + description="Region code for Biləsuvar.")) + setattr(cls, "AZ-CAB", + PermissibleValue( + text="AZ-CAB", + description="Region code for Cəbrayıl.")) + setattr(cls, "AZ-CAL", + PermissibleValue( + text="AZ-CAL", + description="Region code for Cəlilabad.")) + setattr(cls, "AZ-CUL", + PermissibleValue( + text="AZ-CUL", + description="Region code for Culfa.")) + setattr(cls, "AZ-DAS", + PermissibleValue( + text="AZ-DAS", + description="Region code for Daşkəsən.")) + setattr(cls, "AZ-FUZ", + PermissibleValue( + text="AZ-FUZ", + description="Region code for Füzuli.")) + setattr(cls, "AZ-GA", + PermissibleValue( + text="AZ-GA", + description="Region code for Gəncə.")) + setattr(cls, "AZ-GAD", + PermissibleValue( + text="AZ-GAD", + description="Region code for Gədəbəy.")) + setattr(cls, "AZ-GOR", + PermissibleValue( + text="AZ-GOR", + description="Region code for Goranboy.")) + setattr(cls, "AZ-GOY", + PermissibleValue( + text="AZ-GOY", + description="Region code for Göyçay.")) + setattr(cls, "AZ-GYG", + PermissibleValue( + text="AZ-GYG", + description="Region code for Göygöl.")) + setattr(cls, "AZ-HAC", + PermissibleValue( + text="AZ-HAC", + description="Region code for Hacıqabul.")) + setattr(cls, "AZ-IMI", + PermissibleValue( + text="AZ-IMI", + description="Region code for İmişli.")) + setattr(cls, "AZ-ISM", + PermissibleValue( + text="AZ-ISM", + description="Region code for İsmayıllı.")) + setattr(cls, "AZ-KAL", + PermissibleValue( + text="AZ-KAL", + description="Region code for Kəlbəcər.")) + setattr(cls, "AZ-KAN", + PermissibleValue( + text="AZ-KAN", + description="Region code for Kǝngǝrli.")) + setattr(cls, "AZ-KUR", + PermissibleValue( + text="AZ-KUR", + description="Region code for Kürdəmir.")) + setattr(cls, "AZ-LA", + PermissibleValue( + text="AZ-LA", + description="Region code for Lənkəran.")) + setattr(cls, "AZ-LAC", + PermissibleValue( + text="AZ-LAC", + description="Region code for Laçın.")) + setattr(cls, "AZ-LAN", + PermissibleValue( + text="AZ-LAN", + description="Region code for Lənkəran.")) + setattr(cls, "AZ-LER", + PermissibleValue( + text="AZ-LER", + description="Region code for Lerik.")) + setattr(cls, "AZ-MAS", + PermissibleValue( + text="AZ-MAS", + description="Region code for Masallı.")) + setattr(cls, "AZ-MI", + PermissibleValue( + text="AZ-MI", + description="Region code for Mingəçevir.")) + setattr(cls, "AZ-NA", + PermissibleValue( + text="AZ-NA", + description="Region code for Naftalan.")) + setattr(cls, "AZ-NEF", + PermissibleValue( + text="AZ-NEF", + description="Region code for Neftçala.")) + setattr(cls, "AZ-NV", + PermissibleValue( + text="AZ-NV", + description="Region code for Naxçıvan.")) + setattr(cls, "AZ-NX", + PermissibleValue( + text="AZ-NX", + description="Region code for Naxçıvan.")) + setattr(cls, "AZ-OGU", + PermissibleValue( + text="AZ-OGU", + description="Region code for Oğuz.")) + setattr(cls, "AZ-ORD", + PermissibleValue( + text="AZ-ORD", + description="Region code for Ordubad.")) + setattr(cls, "AZ-QAB", + PermissibleValue( + text="AZ-QAB", + description="Region code for Qəbələ.")) + setattr(cls, "AZ-QAX", + PermissibleValue( + text="AZ-QAX", + description="Region code for Qax.")) + setattr(cls, "AZ-QAZ", + PermissibleValue( + text="AZ-QAZ", + description="Region code for Qazax.")) + setattr(cls, "AZ-QBA", + PermissibleValue( + text="AZ-QBA", + description="Region code for Quba.")) + setattr(cls, "AZ-QBI", + PermissibleValue( + text="AZ-QBI", + description="Region code for Qubadlı.")) + setattr(cls, "AZ-QOB", + PermissibleValue( + text="AZ-QOB", + description="Region code for Qobustan.")) + setattr(cls, "AZ-QUS", + PermissibleValue( + text="AZ-QUS", + description="Region code for Qusar.")) + setattr(cls, "AZ-SA", + PermissibleValue( + text="AZ-SA", + description="Region code for Şəki.")) + setattr(cls, "AZ-SAB", + PermissibleValue( + text="AZ-SAB", + description="Region code for Sabirabad.")) + setattr(cls, "AZ-SAD", + PermissibleValue( + text="AZ-SAD", + description="Region code for Sədərək.")) + setattr(cls, "AZ-SAH", + PermissibleValue( + text="AZ-SAH", + description="Region code for Şahbuz.")) + setattr(cls, "AZ-SAK", + PermissibleValue( + text="AZ-SAK", + description="Region code for Şəki.")) + setattr(cls, "AZ-SAL", + PermissibleValue( + text="AZ-SAL", + description="Region code for Salyan.")) + setattr(cls, "AZ-SAR", + PermissibleValue( + text="AZ-SAR", + description="Region code for Şərur.")) + setattr(cls, "AZ-SAT", + PermissibleValue( + text="AZ-SAT", + description="Region code for Saatlı.")) + setattr(cls, "AZ-SBN", + PermissibleValue( + text="AZ-SBN", + description="Region code for Şabran.")) + setattr(cls, "AZ-SIY", + PermissibleValue( + text="AZ-SIY", + description="Region code for Siyəzən.")) + setattr(cls, "AZ-SKR", + PermissibleValue( + text="AZ-SKR", + description="Region code for Şəmkir.")) + setattr(cls, "AZ-SM", + PermissibleValue( + text="AZ-SM", + description="Region code for Sumqayıt.")) + setattr(cls, "AZ-SMI", + PermissibleValue( + text="AZ-SMI", + description="Region code for Şamaxı.")) + setattr(cls, "AZ-SMX", + PermissibleValue( + text="AZ-SMX", + description="Region code for Samux.")) + setattr(cls, "AZ-SR", + PermissibleValue( + text="AZ-SR", + description="Region code for Şirvan.")) + setattr(cls, "AZ-SUS", + PermissibleValue( + text="AZ-SUS", + description="Region code for Şuşa.")) + setattr(cls, "AZ-TAR", + PermissibleValue( + text="AZ-TAR", + description="Region code for Tərtər.")) + setattr(cls, "AZ-TOV", + PermissibleValue( + text="AZ-TOV", + description="Region code for Tovuz.")) + setattr(cls, "AZ-UCA", + PermissibleValue( + text="AZ-UCA", + description="Region code for Ucar.")) + setattr(cls, "AZ-XA", + PermissibleValue( + text="AZ-XA", + description="Region code for Xankəndi.")) + setattr(cls, "AZ-XAC", + PermissibleValue( + text="AZ-XAC", + description="Region code for Xaçmaz.")) + setattr(cls, "AZ-XCI", + PermissibleValue( + text="AZ-XCI", + description="Region code for Xocalı.")) + setattr(cls, "AZ-XIZ", + PermissibleValue( + text="AZ-XIZ", + description="Region code for Xızı.")) + setattr(cls, "AZ-XVD", + PermissibleValue( + text="AZ-XVD", + description="Region code for Xocavənd.")) + setattr(cls, "AZ-YAR", + PermissibleValue( + text="AZ-YAR", + description="Region code for Yardımlı.")) + setattr(cls, "AZ-YE", + PermissibleValue( + text="AZ-YE", + description="Region code for Yevlax.")) + setattr(cls, "AZ-YEV", + PermissibleValue( + text="AZ-YEV", + description="Region code for Yevlax.")) + setattr(cls, "AZ-ZAN", + PermissibleValue( + text="AZ-ZAN", + description="Region code for Zəngilan.")) + setattr(cls, "AZ-ZAQ", + PermissibleValue( + text="AZ-ZAQ", + description="Region code for Zaqatala.")) + setattr(cls, "AZ-ZAR", + PermissibleValue( + text="AZ-ZAR", + description="Region code for Zərdab.")) + setattr(cls, "BA-BIH", + PermissibleValue( + text="BA-BIH", + description="Region code for Federacija Bosne i Hercegovine.")) + setattr(cls, "BA-BRC", + PermissibleValue( + text="BA-BRC", + description="Region code for Brčko distrikt.")) + setattr(cls, "BA-SRP", + PermissibleValue( + text="BA-SRP", + description="Region code for Republika Srpska.")) + setattr(cls, "BB-01", + PermissibleValue( + text="BB-01", + description="Region code for Christ Church.")) + setattr(cls, "BB-02", + PermissibleValue( + text="BB-02", + description="Region code for Saint Andrew.")) + setattr(cls, "BB-03", + PermissibleValue( + text="BB-03", + description="Region code for Saint George.")) + setattr(cls, "BB-04", + PermissibleValue( + text="BB-04", + description="Region code for Saint James.")) + setattr(cls, "BB-05", + PermissibleValue( + text="BB-05", + description="Region code for Saint John.")) + setattr(cls, "BB-06", + PermissibleValue( + text="BB-06", + description="Region code for Saint Joseph.")) + setattr(cls, "BB-07", + PermissibleValue( + text="BB-07", + description="Region code for Saint Lucy.")) + setattr(cls, "BB-08", + PermissibleValue( + text="BB-08", + description="Region code for Saint Michael.")) + setattr(cls, "BB-09", + PermissibleValue( + text="BB-09", + description="Region code for Saint Peter.")) + setattr(cls, "BB-10", + PermissibleValue( + text="BB-10", + description="Region code for Saint Philip.")) + setattr(cls, "BB-11", + PermissibleValue( + text="BB-11", + description="Region code for Saint Thomas.")) + setattr(cls, "BD-01", + PermissibleValue( + text="BD-01", + description="Region code for Bandarban.")) + setattr(cls, "BD-02", + PermissibleValue( + text="BD-02", + description="Region code for Barguna.")) + setattr(cls, "BD-03", + PermissibleValue( + text="BD-03", + description="Region code for Bogura.")) + setattr(cls, "BD-04", + PermissibleValue( + text="BD-04", + description="Region code for Brahmanbaria.")) + setattr(cls, "BD-05", + PermissibleValue( + text="BD-05", + description="Region code for Bagerhat.")) + setattr(cls, "BD-06", + PermissibleValue( + text="BD-06", + description="Region code for Barishal.")) + setattr(cls, "BD-07", + PermissibleValue( + text="BD-07", + description="Region code for Bhola.")) + setattr(cls, "BD-08", + PermissibleValue( + text="BD-08", + description="Region code for Cumilla.")) + setattr(cls, "BD-09", + PermissibleValue( + text="BD-09", + description="Region code for Chandpur.")) + setattr(cls, "BD-10", + PermissibleValue( + text="BD-10", + description="Region code for Chattogram.")) + setattr(cls, "BD-11", + PermissibleValue( + text="BD-11", + description="Region code for Cox's Bazar.")) + setattr(cls, "BD-12", + PermissibleValue( + text="BD-12", + description="Region code for Chuadanga.")) + setattr(cls, "BD-13", + PermissibleValue( + text="BD-13", + description="Region code for Dhaka.")) + setattr(cls, "BD-14", + PermissibleValue( + text="BD-14", + description="Region code for Dinajpur.")) + setattr(cls, "BD-15", + PermissibleValue( + text="BD-15", + description="Region code for Faridpur.")) + setattr(cls, "BD-16", + PermissibleValue( + text="BD-16", + description="Region code for Feni.")) + setattr(cls, "BD-17", + PermissibleValue( + text="BD-17", + description="Region code for Gopalganj.")) + setattr(cls, "BD-18", + PermissibleValue( + text="BD-18", + description="Region code for Gazipur.")) + setattr(cls, "BD-19", + PermissibleValue( + text="BD-19", + description="Region code for Gaibandha.")) + setattr(cls, "BD-20", + PermissibleValue( + text="BD-20", + description="Region code for Habiganj.")) + setattr(cls, "BD-21", + PermissibleValue( + text="BD-21", + description="Region code for Jamalpur.")) + setattr(cls, "BD-22", + PermissibleValue( + text="BD-22", + description="Region code for Jashore.")) + setattr(cls, "BD-23", + PermissibleValue( + text="BD-23", + description="Region code for Jhenaidah.")) + setattr(cls, "BD-24", + PermissibleValue( + text="BD-24", + description="Region code for Joypurhat.")) + setattr(cls, "BD-25", + PermissibleValue( + text="BD-25", + description="Region code for Jhalakathi.")) + setattr(cls, "BD-26", + PermissibleValue( + text="BD-26", + description="Region code for Kishoreganj.")) + setattr(cls, "BD-27", + PermissibleValue( + text="BD-27", + description="Region code for Khulna.")) + setattr(cls, "BD-28", + PermissibleValue( + text="BD-28", + description="Region code for Kurigram.")) + setattr(cls, "BD-29", + PermissibleValue( + text="BD-29", + description="Region code for Khagrachhari.")) + setattr(cls, "BD-30", + PermissibleValue( + text="BD-30", + description="Region code for Kushtia.")) + setattr(cls, "BD-31", + PermissibleValue( + text="BD-31", + description="Region code for Lakshmipur.")) + setattr(cls, "BD-32", + PermissibleValue( + text="BD-32", + description="Region code for Lalmonirhat.")) + setattr(cls, "BD-33", + PermissibleValue( + text="BD-33", + description="Region code for Manikganj.")) + setattr(cls, "BD-34", + PermissibleValue( + text="BD-34", + description="Region code for Mymensingh.")) + setattr(cls, "BD-35", + PermissibleValue( + text="BD-35", + description="Region code for Munshiganj.")) + setattr(cls, "BD-36", + PermissibleValue( + text="BD-36", + description="Region code for Madaripur.")) + setattr(cls, "BD-37", + PermissibleValue( + text="BD-37", + description="Region code for Magura.")) + setattr(cls, "BD-38", + PermissibleValue( + text="BD-38", + description="Region code for Moulvibazar.")) + setattr(cls, "BD-39", + PermissibleValue( + text="BD-39", + description="Region code for Meherpur.")) + setattr(cls, "BD-40", + PermissibleValue( + text="BD-40", + description="Region code for Narayanganj.")) + setattr(cls, "BD-41", + PermissibleValue( + text="BD-41", + description="Region code for Netrakona.")) + setattr(cls, "BD-42", + PermissibleValue( + text="BD-42", + description="Region code for Narsingdi.")) + setattr(cls, "BD-43", + PermissibleValue( + text="BD-43", + description="Region code for Narail.")) + setattr(cls, "BD-44", + PermissibleValue( + text="BD-44", + description="Region code for Natore.")) + setattr(cls, "BD-45", + PermissibleValue( + text="BD-45", + description="Region code for Chapai Nawabganj.")) + setattr(cls, "BD-46", + PermissibleValue( + text="BD-46", + description="Region code for Nilphamari.")) + setattr(cls, "BD-47", + PermissibleValue( + text="BD-47", + description="Region code for Noakhali.")) + setattr(cls, "BD-48", + PermissibleValue( + text="BD-48", + description="Region code for Naogaon.")) + setattr(cls, "BD-49", + PermissibleValue( + text="BD-49", + description="Region code for Pabna.")) + setattr(cls, "BD-50", + PermissibleValue( + text="BD-50", + description="Region code for Pirojpur.")) + setattr(cls, "BD-51", + PermissibleValue( + text="BD-51", + description="Region code for Patuakhali.")) + setattr(cls, "BD-52", + PermissibleValue( + text="BD-52", + description="Region code for Panchagarh.")) + setattr(cls, "BD-53", + PermissibleValue( + text="BD-53", + description="Region code for Rajbari.")) + setattr(cls, "BD-54", + PermissibleValue( + text="BD-54", + description="Region code for Rajshahi.")) + setattr(cls, "BD-55", + PermissibleValue( + text="BD-55", + description="Region code for Rangpur.")) + setattr(cls, "BD-56", + PermissibleValue( + text="BD-56", + description="Region code for Rangamati.")) + setattr(cls, "BD-57", + PermissibleValue( + text="BD-57", + description="Region code for Sherpur.")) + setattr(cls, "BD-58", + PermissibleValue( + text="BD-58", + description="Region code for Satkhira.")) + setattr(cls, "BD-59", + PermissibleValue( + text="BD-59", + description="Region code for Sirajganj.")) + setattr(cls, "BD-60", + PermissibleValue( + text="BD-60", + description="Region code for Sylhet.")) + setattr(cls, "BD-61", + PermissibleValue( + text="BD-61", + description="Region code for Sunamganj.")) + setattr(cls, "BD-62", + PermissibleValue( + text="BD-62", + description="Region code for Shariatpur.")) + setattr(cls, "BD-63", + PermissibleValue( + text="BD-63", + description="Region code for Tangail.")) + setattr(cls, "BD-64", + PermissibleValue( + text="BD-64", + description="Region code for Thakurgaon.")) + setattr(cls, "BD-A", + PermissibleValue( + text="BD-A", + description="Region code for Barishal.")) + setattr(cls, "BD-B", + PermissibleValue( + text="BD-B", + description="Region code for Chattogram.")) + setattr(cls, "BD-C", + PermissibleValue( + text="BD-C", + description="Region code for Dhaka.")) + setattr(cls, "BD-D", + PermissibleValue( + text="BD-D", + description="Region code for Khulna.")) + setattr(cls, "BD-E", + PermissibleValue( + text="BD-E", + description="Region code for Rajshahi.")) + setattr(cls, "BD-F", + PermissibleValue( + text="BD-F", + description="Region code for Rangpur.")) + setattr(cls, "BD-G", + PermissibleValue( + text="BD-G", + description="Region code for Sylhet.")) + setattr(cls, "BD-H", + PermissibleValue( + text="BD-H", + description="Region code for Mymensingh.")) + setattr(cls, "BE-BRU", + PermissibleValue( + text="BE-BRU", + description="Region code for Bruxelles-Capitale, Région de.")) + setattr(cls, "BE-VAN", + PermissibleValue( + text="BE-VAN", + description="Region code for Antwerpen.")) + setattr(cls, "BE-VBR", + PermissibleValue( + text="BE-VBR", + description="Region code for Vlaams-Brabant.")) + setattr(cls, "BE-VLG", + PermissibleValue( + text="BE-VLG", + description="Region code for Vlaams Gewest.")) + setattr(cls, "BE-VLI", + PermissibleValue( + text="BE-VLI", + description="Region code for Limburg.")) + setattr(cls, "BE-VOV", + PermissibleValue( + text="BE-VOV", + description="Region code for Oost-Vlaanderen.")) + setattr(cls, "BE-VWV", + PermissibleValue( + text="BE-VWV", + description="Region code for West-Vlaanderen.")) + setattr(cls, "BE-WAL", + PermissibleValue( + text="BE-WAL", + description="Region code for wallonne, Région.")) + setattr(cls, "BE-WBR", + PermissibleValue( + text="BE-WBR", + description="Region code for Brabant wallon.")) + setattr(cls, "BE-WHT", + PermissibleValue( + text="BE-WHT", + description="Region code for Hainaut.")) + setattr(cls, "BE-WLG", + PermissibleValue( + text="BE-WLG", + description="Region code for Liège.")) + setattr(cls, "BE-WLX", + PermissibleValue( + text="BE-WLX", + description="Region code for Luxembourg.")) + setattr(cls, "BE-WNA", + PermissibleValue( + text="BE-WNA", + description="Region code for Namur.")) + setattr(cls, "BF-01", + PermissibleValue( + text="BF-01", + description="Region code for Boucle du Mouhoun.")) + setattr(cls, "BF-02", + PermissibleValue( + text="BF-02", + description="Region code for Cascades.")) + setattr(cls, "BF-03", + PermissibleValue( + text="BF-03", + description="Region code for Centre.")) + setattr(cls, "BF-04", + PermissibleValue( + text="BF-04", + description="Region code for Centre-Est.")) + setattr(cls, "BF-05", + PermissibleValue( + text="BF-05", + description="Region code for Centre-Nord.")) + setattr(cls, "BF-06", + PermissibleValue( + text="BF-06", + description="Region code for Centre-Ouest.")) + setattr(cls, "BF-07", + PermissibleValue( + text="BF-07", + description="Region code for Centre-Sud.")) + setattr(cls, "BF-08", + PermissibleValue( + text="BF-08", + description="Region code for Est.")) + setattr(cls, "BF-09", + PermissibleValue( + text="BF-09", + description="Region code for Hauts-Bassins.")) + setattr(cls, "BF-10", + PermissibleValue( + text="BF-10", + description="Region code for Nord.")) + setattr(cls, "BF-11", + PermissibleValue( + text="BF-11", + description="Region code for Plateau-Central.")) + setattr(cls, "BF-12", + PermissibleValue( + text="BF-12", + description="Region code for Sahel.")) + setattr(cls, "BF-13", + PermissibleValue( + text="BF-13", + description="Region code for Sud-Ouest.")) + setattr(cls, "BF-BAL", + PermissibleValue( + text="BF-BAL", + description="Region code for Balé.")) + setattr(cls, "BF-BAM", + PermissibleValue( + text="BF-BAM", + description="Region code for Bam.")) + setattr(cls, "BF-BAN", + PermissibleValue( + text="BF-BAN", + description="Region code for Banwa.")) + setattr(cls, "BF-BAZ", + PermissibleValue( + text="BF-BAZ", + description="Region code for Bazèga.")) + setattr(cls, "BF-BGR", + PermissibleValue( + text="BF-BGR", + description="Region code for Bougouriba.")) + setattr(cls, "BF-BLG", + PermissibleValue( + text="BF-BLG", + description="Region code for Boulgou.")) + setattr(cls, "BF-BLK", + PermissibleValue( + text="BF-BLK", + description="Region code for Boulkiemdé.")) + setattr(cls, "BF-COM", + PermissibleValue( + text="BF-COM", + description="Region code for Comoé.")) + setattr(cls, "BF-GAN", + PermissibleValue( + text="BF-GAN", + description="Region code for Ganzourgou.")) + setattr(cls, "BF-GNA", + PermissibleValue( + text="BF-GNA", + description="Region code for Gnagna.")) + setattr(cls, "BF-GOU", + PermissibleValue( + text="BF-GOU", + description="Region code for Gourma.")) + setattr(cls, "BF-HOU", + PermissibleValue( + text="BF-HOU", + description="Region code for Houet.")) + setattr(cls, "BF-IOB", + PermissibleValue( + text="BF-IOB", + description="Region code for Ioba.")) + setattr(cls, "BF-KAD", + PermissibleValue( + text="BF-KAD", + description="Region code for Kadiogo.")) + setattr(cls, "BF-KEN", + PermissibleValue( + text="BF-KEN", + description="Region code for Kénédougou.")) + setattr(cls, "BF-KMD", + PermissibleValue( + text="BF-KMD", + description="Region code for Komondjari.")) + setattr(cls, "BF-KMP", + PermissibleValue( + text="BF-KMP", + description="Region code for Kompienga.")) + setattr(cls, "BF-KOP", + PermissibleValue( + text="BF-KOP", + description="Region code for Koulpélogo.")) + setattr(cls, "BF-KOS", + PermissibleValue( + text="BF-KOS", + description="Region code for Kossi.")) + setattr(cls, "BF-KOT", + PermissibleValue( + text="BF-KOT", + description="Region code for Kouritenga.")) + setattr(cls, "BF-KOW", + PermissibleValue( + text="BF-KOW", + description="Region code for Kourwéogo.")) + setattr(cls, "BF-LER", + PermissibleValue( + text="BF-LER", + description="Region code for Léraba.")) + setattr(cls, "BF-LOR", + PermissibleValue( + text="BF-LOR", + description="Region code for Loroum.")) + setattr(cls, "BF-MOU", + PermissibleValue( + text="BF-MOU", + description="Region code for Mouhoun.")) + setattr(cls, "BF-NAM", + PermissibleValue( + text="BF-NAM", + description="Region code for Namentenga.")) + setattr(cls, "BF-NAO", + PermissibleValue( + text="BF-NAO", + description="Region code for Nahouri.")) + setattr(cls, "BF-NAY", + PermissibleValue( + text="BF-NAY", + description="Region code for Nayala.")) + setattr(cls, "BF-NOU", + PermissibleValue( + text="BF-NOU", + description="Region code for Noumbiel.")) + setattr(cls, "BF-OUB", + PermissibleValue( + text="BF-OUB", + description="Region code for Oubritenga.")) + setattr(cls, "BF-OUD", + PermissibleValue( + text="BF-OUD", + description="Region code for Oudalan.")) + setattr(cls, "BF-PAS", + PermissibleValue( + text="BF-PAS", + description="Region code for Passoré.")) + setattr(cls, "BF-PON", + PermissibleValue( + text="BF-PON", + description="Region code for Poni.")) + setattr(cls, "BF-SEN", + PermissibleValue( + text="BF-SEN", + description="Region code for Séno.")) + setattr(cls, "BF-SIS", + PermissibleValue( + text="BF-SIS", + description="Region code for Sissili.")) + setattr(cls, "BF-SMT", + PermissibleValue( + text="BF-SMT", + description="Region code for Sanmatenga.")) + setattr(cls, "BF-SNG", + PermissibleValue( + text="BF-SNG", + description="Region code for Sanguié.")) + setattr(cls, "BF-SOM", + PermissibleValue( + text="BF-SOM", + description="Region code for Soum.")) + setattr(cls, "BF-SOR", + PermissibleValue( + text="BF-SOR", + description="Region code for Sourou.")) + setattr(cls, "BF-TAP", + PermissibleValue( + text="BF-TAP", + description="Region code for Tapoa.")) + setattr(cls, "BF-TUI", + PermissibleValue( + text="BF-TUI", + description="Region code for Tuy.")) + setattr(cls, "BF-YAG", + PermissibleValue( + text="BF-YAG", + description="Region code for Yagha.")) + setattr(cls, "BF-YAT", + PermissibleValue( + text="BF-YAT", + description="Region code for Yatenga.")) + setattr(cls, "BF-ZIR", + PermissibleValue( + text="BF-ZIR", + description="Region code for Ziro.")) + setattr(cls, "BF-ZON", + PermissibleValue( + text="BF-ZON", + description="Region code for Zondoma.")) + setattr(cls, "BF-ZOU", + PermissibleValue( + text="BF-ZOU", + description="Region code for Zoundwéogo.")) + setattr(cls, "BG-01", + PermissibleValue( + text="BG-01", + description="Region code for Blagoevgrad.")) + setattr(cls, "BG-02", + PermissibleValue( + text="BG-02", + description="Region code for Burgas.")) + setattr(cls, "BG-03", + PermissibleValue( + text="BG-03", + description="Region code for Varna.")) + setattr(cls, "BG-04", + PermissibleValue( + text="BG-04", + description="Region code for Veliko Tarnovo.")) + setattr(cls, "BG-05", + PermissibleValue( + text="BG-05", + description="Region code for Vidin.")) + setattr(cls, "BG-06", + PermissibleValue( + text="BG-06", + description="Region code for Vratsa.")) + setattr(cls, "BG-07", + PermissibleValue( + text="BG-07", + description="Region code for Gabrovo.")) + setattr(cls, "BG-08", + PermissibleValue( + text="BG-08", + description="Region code for Dobrich.")) + setattr(cls, "BG-09", + PermissibleValue( + text="BG-09", + description="Region code for Kardzhali.")) + setattr(cls, "BG-10", + PermissibleValue( + text="BG-10", + description="Region code for Kyustendil.")) + setattr(cls, "BG-11", + PermissibleValue( + text="BG-11", + description="Region code for Lovech.")) + setattr(cls, "BG-12", + PermissibleValue( + text="BG-12", + description="Region code for Montana.")) + setattr(cls, "BG-13", + PermissibleValue( + text="BG-13", + description="Region code for Pazardzhik.")) + setattr(cls, "BG-14", + PermissibleValue( + text="BG-14", + description="Region code for Pernik.")) + setattr(cls, "BG-15", + PermissibleValue( + text="BG-15", + description="Region code for Pleven.")) + setattr(cls, "BG-16", + PermissibleValue( + text="BG-16", + description="Region code for Plovdiv.")) + setattr(cls, "BG-17", + PermissibleValue( + text="BG-17", + description="Region code for Razgrad.")) + setattr(cls, "BG-18", + PermissibleValue( + text="BG-18", + description="Region code for Ruse.")) + setattr(cls, "BG-19", + PermissibleValue( + text="BG-19", + description="Region code for Silistra.")) + setattr(cls, "BG-20", + PermissibleValue( + text="BG-20", + description="Region code for Sliven.")) + setattr(cls, "BG-21", + PermissibleValue( + text="BG-21", + description="Region code for Smolyan.")) + setattr(cls, "BG-22", + PermissibleValue( + text="BG-22", + description="Region code for Sofia (stolitsa).")) + setattr(cls, "BG-23", + PermissibleValue( + text="BG-23", + description="Region code for Sofia.")) + setattr(cls, "BG-24", + PermissibleValue( + text="BG-24", + description="Region code for Stara Zagora.")) + setattr(cls, "BG-25", + PermissibleValue( + text="BG-25", + description="Region code for Targovishte.")) + setattr(cls, "BG-26", + PermissibleValue( + text="BG-26", + description="Region code for Haskovo.")) + setattr(cls, "BG-27", + PermissibleValue( + text="BG-27", + description="Region code for Shumen.")) + setattr(cls, "BG-28", + PermissibleValue( + text="BG-28", + description="Region code for Yambol.")) + setattr(cls, "BH-13", + PermissibleValue( + text="BH-13", + description="Region code for Al ‘Āşimah.")) + setattr(cls, "BH-14", + PermissibleValue( + text="BH-14", + description="Region code for Al Janūbīyah.")) + setattr(cls, "BH-15", + PermissibleValue( + text="BH-15", + description="Region code for Al Muḩarraq.")) + setattr(cls, "BH-17", + PermissibleValue( + text="BH-17", + description="Region code for Ash Shamālīyah.")) + setattr(cls, "BI-BB", + PermissibleValue( + text="BI-BB", + description="Region code for Bubanza.")) + setattr(cls, "BI-BL", + PermissibleValue( + text="BI-BL", + description="Region code for Bujumbura Rural.")) + setattr(cls, "BI-BM", + PermissibleValue( + text="BI-BM", + description="Region code for Bujumbura Mairie.")) + setattr(cls, "BI-BR", + PermissibleValue( + text="BI-BR", + description="Region code for Bururi.")) + setattr(cls, "BI-CA", + PermissibleValue( + text="BI-CA", + description="Region code for Cankuzo.")) + setattr(cls, "BI-CI", + PermissibleValue( + text="BI-CI", + description="Region code for Cibitoke.")) + setattr(cls, "BI-GI", + PermissibleValue( + text="BI-GI", + description="Region code for Gitega.")) + setattr(cls, "BI-KI", + PermissibleValue( + text="BI-KI", + description="Region code for Kirundo.")) + setattr(cls, "BI-KR", + PermissibleValue( + text="BI-KR", + description="Region code for Karuzi.")) + setattr(cls, "BI-KY", + PermissibleValue( + text="BI-KY", + description="Region code for Kayanza.")) + setattr(cls, "BI-MA", + PermissibleValue( + text="BI-MA", + description="Region code for Makamba.")) + setattr(cls, "BI-MU", + PermissibleValue( + text="BI-MU", + description="Region code for Muramvya.")) + setattr(cls, "BI-MW", + PermissibleValue( + text="BI-MW", + description="Region code for Mwaro.")) + setattr(cls, "BI-MY", + PermissibleValue( + text="BI-MY", + description="Region code for Muyinga.")) + setattr(cls, "BI-NG", + PermissibleValue( + text="BI-NG", + description="Region code for Ngozi.")) + setattr(cls, "BI-RM", + PermissibleValue( + text="BI-RM", + description="Region code for Rumonge.")) + setattr(cls, "BI-RT", + PermissibleValue( + text="BI-RT", + description="Region code for Rutana.")) + setattr(cls, "BI-RY", + PermissibleValue( + text="BI-RY", + description="Region code for Ruyigi.")) + setattr(cls, "BJ-AK", + PermissibleValue( + text="BJ-AK", + description="Region code for Atacora.")) + setattr(cls, "BJ-AL", + PermissibleValue( + text="BJ-AL", + description="Region code for Alibori.")) + setattr(cls, "BJ-AQ", + PermissibleValue( + text="BJ-AQ", + description="Region code for Atlantique.")) + setattr(cls, "BJ-BO", + PermissibleValue( + text="BJ-BO", + description="Region code for Borgou.")) + setattr(cls, "BJ-CO", + PermissibleValue( + text="BJ-CO", + description="Region code for Collines.")) + setattr(cls, "BJ-DO", + PermissibleValue( + text="BJ-DO", + description="Region code for Donga.")) + setattr(cls, "BJ-KO", + PermissibleValue( + text="BJ-KO", + description="Region code for Couffo.")) + setattr(cls, "BJ-LI", + PermissibleValue( + text="BJ-LI", + description="Region code for Littoral.")) + setattr(cls, "BJ-MO", + PermissibleValue( + text="BJ-MO", + description="Region code for Mono.")) + setattr(cls, "BJ-OU", + PermissibleValue( + text="BJ-OU", + description="Region code for Ouémé.")) + setattr(cls, "BJ-PL", + PermissibleValue( + text="BJ-PL", + description="Region code for Plateau.")) + setattr(cls, "BJ-ZO", + PermissibleValue( + text="BJ-ZO", + description="Region code for Zou.")) + setattr(cls, "BN-BE", + PermissibleValue( + text="BN-BE", + description="Region code for Belait.")) + setattr(cls, "BN-BM", + PermissibleValue( + text="BN-BM", + description="Region code for Brunei-Muara.")) + setattr(cls, "BN-TE", + PermissibleValue( + text="BN-TE", + description="Region code for Temburong.")) + setattr(cls, "BN-TU", + PermissibleValue( + text="BN-TU", + description="Region code for Tutong.")) + setattr(cls, "BO-B", + PermissibleValue( + text="BO-B", + description="Region code for El Beni.")) + setattr(cls, "BO-C", + PermissibleValue( + text="BO-C", + description="Region code for Cochabamba.")) + setattr(cls, "BO-H", + PermissibleValue( + text="BO-H", + description="Region code for Chuquisaca.")) + setattr(cls, "BO-L", + PermissibleValue( + text="BO-L", + description="Region code for La Paz.")) + setattr(cls, "BO-N", + PermissibleValue( + text="BO-N", + description="Region code for Pando.")) + setattr(cls, "BO-O", + PermissibleValue( + text="BO-O", + description="Region code for Oruro.")) + setattr(cls, "BO-P", + PermissibleValue( + text="BO-P", + description="Region code for Potosí.")) + setattr(cls, "BO-S", + PermissibleValue( + text="BO-S", + description="Region code for Santa Cruz.")) + setattr(cls, "BO-T", + PermissibleValue( + text="BO-T", + description="Region code for Tarija.")) + setattr(cls, "BQ-BO", + PermissibleValue( + text="BQ-BO", + description="Region code for Bonaire.")) + setattr(cls, "BQ-SA", + PermissibleValue( + text="BQ-SA", + description="Region code for Saba.")) + setattr(cls, "BQ-SE", + PermissibleValue( + text="BQ-SE", + description="Region code for Sint Eustatius.")) + setattr(cls, "BR-AC", + PermissibleValue( + text="BR-AC", + description="Region code for Acre.")) + setattr(cls, "BR-AL", + PermissibleValue( + text="BR-AL", + description="Region code for Alagoas.")) + setattr(cls, "BR-AM", + PermissibleValue( + text="BR-AM", + description="Region code for Amazonas.")) + setattr(cls, "BR-AP", + PermissibleValue( + text="BR-AP", + description="Region code for Amapá.")) + setattr(cls, "BR-BA", + PermissibleValue( + text="BR-BA", + description="Region code for Bahia.")) + setattr(cls, "BR-CE", + PermissibleValue( + text="BR-CE", + description="Region code for Ceará.")) + setattr(cls, "BR-DF", + PermissibleValue( + text="BR-DF", + description="Region code for Distrito Federal.")) + setattr(cls, "BR-ES", + PermissibleValue( + text="BR-ES", + description="Region code for Espírito Santo.")) + setattr(cls, "BR-GO", + PermissibleValue( + text="BR-GO", + description="Region code for Goiás.")) + setattr(cls, "BR-MA", + PermissibleValue( + text="BR-MA", + description="Region code for Maranhão.")) + setattr(cls, "BR-MG", + PermissibleValue( + text="BR-MG", + description="Region code for Minas Gerais.")) + setattr(cls, "BR-MS", + PermissibleValue( + text="BR-MS", + description="Region code for Mato Grosso do Sul.")) + setattr(cls, "BR-MT", + PermissibleValue( + text="BR-MT", + description="Region code for Mato Grosso.")) + setattr(cls, "BR-PA", + PermissibleValue( + text="BR-PA", + description="Region code for Pará.")) + setattr(cls, "BR-PB", + PermissibleValue( + text="BR-PB", + description="Region code for Paraíba.")) + setattr(cls, "BR-PE", + PermissibleValue( + text="BR-PE", + description="Region code for Pernambuco.")) + setattr(cls, "BR-PI", + PermissibleValue( + text="BR-PI", + description="Region code for Piauí.")) + setattr(cls, "BR-PR", + PermissibleValue( + text="BR-PR", + description="Region code for Paraná.")) + setattr(cls, "BR-RJ", + PermissibleValue( + text="BR-RJ", + description="Region code for Rio de Janeiro.")) + setattr(cls, "BR-RN", + PermissibleValue( + text="BR-RN", + description="Region code for Rio Grande do Norte.")) + setattr(cls, "BR-RO", + PermissibleValue( + text="BR-RO", + description="Region code for Rondônia.")) + setattr(cls, "BR-RR", + PermissibleValue( + text="BR-RR", + description="Region code for Roraima.")) + setattr(cls, "BR-RS", + PermissibleValue( + text="BR-RS", + description="Region code for Rio Grande do Sul.")) + setattr(cls, "BR-SC", + PermissibleValue( + text="BR-SC", + description="Region code for Santa Catarina.")) + setattr(cls, "BR-SE", + PermissibleValue( + text="BR-SE", + description="Region code for Sergipe.")) + setattr(cls, "BR-SP", + PermissibleValue( + text="BR-SP", + description="Region code for São Paulo.")) + setattr(cls, "BR-TO", + PermissibleValue( + text="BR-TO", + description="Region code for Tocantins.")) + setattr(cls, "BS-AK", + PermissibleValue( + text="BS-AK", + description="Region code for Acklins.")) + setattr(cls, "BS-BI", + PermissibleValue( + text="BS-BI", + description="Region code for Bimini.")) + setattr(cls, "BS-BP", + PermissibleValue( + text="BS-BP", + description="Region code for Black Point.")) + setattr(cls, "BS-BY", + PermissibleValue( + text="BS-BY", + description="Region code for Berry Islands.")) + setattr(cls, "BS-CE", + PermissibleValue( + text="BS-CE", + description="Region code for Central Eleuthera.")) + setattr(cls, "BS-CI", + PermissibleValue( + text="BS-CI", + description="Region code for Cat Island.")) + setattr(cls, "BS-CK", + PermissibleValue( + text="BS-CK", + description="Region code for Crooked Island and Long Cay.")) + setattr(cls, "BS-CO", + PermissibleValue( + text="BS-CO", + description="Region code for Central Abaco.")) + setattr(cls, "BS-CS", + PermissibleValue( + text="BS-CS", + description="Region code for Central Andros.")) + setattr(cls, "BS-EG", + PermissibleValue( + text="BS-EG", + description="Region code for East Grand Bahama.")) + setattr(cls, "BS-EX", + PermissibleValue( + text="BS-EX", + description="Region code for Exuma.")) + setattr(cls, "BS-FP", + PermissibleValue( + text="BS-FP", + description="Region code for City of Freeport.")) + setattr(cls, "BS-GC", + PermissibleValue( + text="BS-GC", + description="Region code for Grand Cay.")) + setattr(cls, "BS-HI", + PermissibleValue( + text="BS-HI", + description="Region code for Harbour Island.")) + setattr(cls, "BS-HT", + PermissibleValue( + text="BS-HT", + description="Region code for Hope Town.")) + setattr(cls, "BS-IN", + PermissibleValue( + text="BS-IN", + description="Region code for Inagua.")) + setattr(cls, "BS-LI", + PermissibleValue( + text="BS-LI", + description="Region code for Long Island.")) + setattr(cls, "BS-MC", + PermissibleValue( + text="BS-MC", + description="Region code for Mangrove Cay.")) + setattr(cls, "BS-MG", + PermissibleValue( + text="BS-MG", + description="Region code for Mayaguana.")) + setattr(cls, "BS-MI", + PermissibleValue( + text="BS-MI", + description="Region code for Moore's Island.")) + setattr(cls, "BS-NE", + PermissibleValue( + text="BS-NE", + description="Region code for North Eleuthera.")) + setattr(cls, "BS-NO", + PermissibleValue( + text="BS-NO", + description="Region code for North Abaco.")) + setattr(cls, "BS-NP", + PermissibleValue( + text="BS-NP", + description="Region code for New Providence.")) + setattr(cls, "BS-NS", + PermissibleValue( + text="BS-NS", + description="Region code for North Andros.")) + setattr(cls, "BS-RC", + PermissibleValue( + text="BS-RC", + description="Region code for Rum Cay.")) + setattr(cls, "BS-RI", + PermissibleValue( + text="BS-RI", + description="Region code for Ragged Island.")) + setattr(cls, "BS-SA", + PermissibleValue( + text="BS-SA", + description="Region code for South Andros.")) + setattr(cls, "BS-SE", + PermissibleValue( + text="BS-SE", + description="Region code for South Eleuthera.")) + setattr(cls, "BS-SO", + PermissibleValue( + text="BS-SO", + description="Region code for South Abaco.")) + setattr(cls, "BS-SS", + PermissibleValue( + text="BS-SS", + description="Region code for San Salvador.")) + setattr(cls, "BS-SW", + PermissibleValue( + text="BS-SW", + description="Region code for Spanish Wells.")) + setattr(cls, "BS-WG", + PermissibleValue( + text="BS-WG", + description="Region code for West Grand Bahama.")) + setattr(cls, "BT-11", + PermissibleValue( + text="BT-11", + description="Region code for Paro.")) + setattr(cls, "BT-12", + PermissibleValue( + text="BT-12", + description="Region code for Chhukha.")) + setattr(cls, "BT-13", + PermissibleValue( + text="BT-13", + description="Region code for Haa.")) + setattr(cls, "BT-14", + PermissibleValue( + text="BT-14", + description="Region code for Samtse.")) + setattr(cls, "BT-15", + PermissibleValue( + text="BT-15", + description="Region code for Thimphu.")) + setattr(cls, "BT-21", + PermissibleValue( + text="BT-21", + description="Region code for Tsirang.")) + setattr(cls, "BT-22", + PermissibleValue( + text="BT-22", + description="Region code for Dagana.")) + setattr(cls, "BT-23", + PermissibleValue( + text="BT-23", + description="Region code for Punakha.")) + setattr(cls, "BT-24", + PermissibleValue( + text="BT-24", + description="Region code for Wangdue Phodrang.")) + setattr(cls, "BT-31", + PermissibleValue( + text="BT-31", + description="Region code for Sarpang.")) + setattr(cls, "BT-32", + PermissibleValue( + text="BT-32", + description="Region code for Trongsa.")) + setattr(cls, "BT-33", + PermissibleValue( + text="BT-33", + description="Region code for Bumthang.")) + setattr(cls, "BT-34", + PermissibleValue( + text="BT-34", + description="Region code for Zhemgang.")) + setattr(cls, "BT-41", + PermissibleValue( + text="BT-41", + description="Region code for Trashigang.")) + setattr(cls, "BT-42", + PermissibleValue( + text="BT-42", + description="Region code for Monggar.")) + setattr(cls, "BT-43", + PermissibleValue( + text="BT-43", + description="Region code for Pema Gatshel.")) + setattr(cls, "BT-44", + PermissibleValue( + text="BT-44", + description="Region code for Lhuentse.")) + setattr(cls, "BT-45", + PermissibleValue( + text="BT-45", + description="Region code for Samdrup Jongkhar.")) + setattr(cls, "BT-GA", + PermissibleValue( + text="BT-GA", + description="Region code for Gasa.")) + setattr(cls, "BT-TY", + PermissibleValue( + text="BT-TY", + description="Region code for Trashi Yangtse.")) + setattr(cls, "BW-CE", + PermissibleValue( + text="BW-CE", + description="Region code for Central.")) + setattr(cls, "BW-CH", + PermissibleValue( + text="BW-CH", + description="Region code for Chobe.")) + setattr(cls, "BW-FR", + PermissibleValue( + text="BW-FR", + description="Region code for Francistown.")) + setattr(cls, "BW-GA", + PermissibleValue( + text="BW-GA", + description="Region code for Gaborone.")) + setattr(cls, "BW-GH", + PermissibleValue( + text="BW-GH", + description="Region code for Ghanzi.")) + setattr(cls, "BW-JW", + PermissibleValue( + text="BW-JW", + description="Region code for Jwaneng.")) + setattr(cls, "BW-KG", + PermissibleValue( + text="BW-KG", + description="Region code for Kgalagadi.")) + setattr(cls, "BW-KL", + PermissibleValue( + text="BW-KL", + description="Region code for Kgatleng.")) + setattr(cls, "BW-KW", + PermissibleValue( + text="BW-KW", + description="Region code for Kweneng.")) + setattr(cls, "BW-LO", + PermissibleValue( + text="BW-LO", + description="Region code for Lobatse.")) + setattr(cls, "BW-NE", + PermissibleValue( + text="BW-NE", + description="Region code for North East.")) + setattr(cls, "BW-NW", + PermissibleValue( + text="BW-NW", + description="Region code for North West.")) + setattr(cls, "BW-SE", + PermissibleValue( + text="BW-SE", + description="Region code for South East.")) + setattr(cls, "BW-SO", + PermissibleValue( + text="BW-SO", + description="Region code for Southern.")) + setattr(cls, "BW-SP", + PermissibleValue( + text="BW-SP", + description="Region code for Selibe Phikwe.")) + setattr(cls, "BW-ST", + PermissibleValue( + text="BW-ST", + description="Region code for Sowa Town.")) + setattr(cls, "BY-BR", + PermissibleValue( + text="BY-BR", + description="Region code for Bresckaja voblasć.")) + setattr(cls, "BY-HM", + PermissibleValue( + text="BY-HM", + description="Region code for Horad Minsk.")) + setattr(cls, "BY-HO", + PermissibleValue( + text="BY-HO", + description="Region code for Homieĺskaja voblasć.")) + setattr(cls, "BY-HR", + PermissibleValue( + text="BY-HR", + description="Region code for Hrodzyenskaya voblasts'.")) + setattr(cls, "BY-MA", + PermissibleValue( + text="BY-MA", + description="Region code for Mahilioŭskaja voblasć.")) + setattr(cls, "BY-MI", + PermissibleValue( + text="BY-MI", + description="Region code for Minskaja voblasć.")) + setattr(cls, "BY-VI", + PermissibleValue( + text="BY-VI", + description="Region code for Viciebskaja voblasć.")) + setattr(cls, "BZ-BZ", + PermissibleValue( + text="BZ-BZ", + description="Region code for Belize.")) + setattr(cls, "BZ-CY", + PermissibleValue( + text="BZ-CY", + description="Region code for Cayo.")) + setattr(cls, "BZ-CZL", + PermissibleValue( + text="BZ-CZL", + description="Region code for Corozal.")) + setattr(cls, "BZ-OW", + PermissibleValue( + text="BZ-OW", + description="Region code for Orange Walk.")) + setattr(cls, "BZ-SC", + PermissibleValue( + text="BZ-SC", + description="Region code for Stann Creek.")) + setattr(cls, "BZ-TOL", + PermissibleValue( + text="BZ-TOL", + description="Region code for Toledo.")) + setattr(cls, "CA-AB", + PermissibleValue( + text="CA-AB", + description="Region code for Alberta.")) + setattr(cls, "CA-BC", + PermissibleValue( + text="CA-BC", + description="Region code for British Columbia.")) + setattr(cls, "CA-MB", + PermissibleValue( + text="CA-MB", + description="Region code for Manitoba.")) + setattr(cls, "CA-NB", + PermissibleValue( + text="CA-NB", + description="Region code for New Brunswick.")) + setattr(cls, "CA-NL", + PermissibleValue( + text="CA-NL", + description="Region code for Newfoundland and Labrador.")) + setattr(cls, "CA-NS", + PermissibleValue( + text="CA-NS", + description="Region code for Nova Scotia.")) + setattr(cls, "CA-NT", + PermissibleValue( + text="CA-NT", + description="Region code for Northwest Territories.")) + setattr(cls, "CA-NU", + PermissibleValue( + text="CA-NU", + description="Region code for Nunavut.")) + setattr(cls, "CA-ON", + PermissibleValue( + text="CA-ON", + description="Region code for Ontario.")) + setattr(cls, "CA-PE", + PermissibleValue( + text="CA-PE", + description="Region code for Prince Edward Island.")) + setattr(cls, "CA-QC", + PermissibleValue( + text="CA-QC", + description="Region code for Quebec.")) + setattr(cls, "CA-SK", + PermissibleValue( + text="CA-SK", + description="Region code for Saskatchewan.")) + setattr(cls, "CA-YT", + PermissibleValue( + text="CA-YT", + description="Region code for Yukon.")) + setattr(cls, "CD-BC", + PermissibleValue( + text="CD-BC", + description="Region code for Kongo Central.")) + setattr(cls, "CD-BU", + PermissibleValue( + text="CD-BU", + description="Region code for Bas-Uélé.")) + setattr(cls, "CD-EQ", + PermissibleValue( + text="CD-EQ", + description="Region code for Équateur.")) + setattr(cls, "CD-HK", + PermissibleValue( + text="CD-HK", + description="Region code for Haut-Katanga.")) + setattr(cls, "CD-HL", + PermissibleValue( + text="CD-HL", + description="Region code for Haut-Lomami.")) + setattr(cls, "CD-HU", + PermissibleValue( + text="CD-HU", + description="Region code for Haut-Uélé.")) + setattr(cls, "CD-IT", + PermissibleValue( + text="CD-IT", + description="Region code for Ituri.")) + setattr(cls, "CD-KC", + PermissibleValue( + text="CD-KC", + description="Region code for Kasaï Central.")) + setattr(cls, "CD-KE", + PermissibleValue( + text="CD-KE", + description="Region code for Kasaï Oriental.")) + setattr(cls, "CD-KG", + PermissibleValue( + text="CD-KG", + description="Region code for Kwango.")) + setattr(cls, "CD-KL", + PermissibleValue( + text="CD-KL", + description="Region code for Kwilu.")) + setattr(cls, "CD-KN", + PermissibleValue( + text="CD-KN", + description="Region code for Kinshasa.")) + setattr(cls, "CD-KS", + PermissibleValue( + text="CD-KS", + description="Region code for Kasaï.")) + setattr(cls, "CD-LO", + PermissibleValue( + text="CD-LO", + description="Region code for Lomami.")) + setattr(cls, "CD-LU", + PermissibleValue( + text="CD-LU", + description="Region code for Lualaba.")) + setattr(cls, "CD-MA", + PermissibleValue( + text="CD-MA", + description="Region code for Maniema.")) + setattr(cls, "CD-MN", + PermissibleValue( + text="CD-MN", + description="Region code for Mai-Ndombe.")) + setattr(cls, "CD-MO", + PermissibleValue( + text="CD-MO", + description="Region code for Mongala.")) + setattr(cls, "CD-NK", + PermissibleValue( + text="CD-NK", + description="Region code for Nord-Kivu.")) + setattr(cls, "CD-NU", + PermissibleValue( + text="CD-NU", + description="Region code for Nord-Ubangi.")) + setattr(cls, "CD-SA", + PermissibleValue( + text="CD-SA", + description="Region code for Sankuru.")) + setattr(cls, "CD-SK", + PermissibleValue( + text="CD-SK", + description="Region code for Sud-Kivu.")) + setattr(cls, "CD-SU", + PermissibleValue( + text="CD-SU", + description="Region code for Sud-Ubangi.")) + setattr(cls, "CD-TA", + PermissibleValue( + text="CD-TA", + description="Region code for Tanganyika.")) + setattr(cls, "CD-TO", + PermissibleValue( + text="CD-TO", + description="Region code for Tshopo.")) + setattr(cls, "CD-TU", + PermissibleValue( + text="CD-TU", + description="Region code for Tshuapa.")) + setattr(cls, "CF-AC", + PermissibleValue( + text="CF-AC", + description="Region code for Ouham.")) + setattr(cls, "CF-BB", + PermissibleValue( + text="CF-BB", + description="Region code for Bamingui-Bangoran.")) + setattr(cls, "CF-BGF", + PermissibleValue( + text="CF-BGF", + description="Region code for Bangui.")) + setattr(cls, "CF-BK", + PermissibleValue( + text="CF-BK", + description="Region code for Basse-Kotto.")) + setattr(cls, "CF-HK", + PermissibleValue( + text="CF-HK", + description="Region code for Haute-Kotto.")) + setattr(cls, "CF-HM", + PermissibleValue( + text="CF-HM", + description="Region code for Haut-Mbomou.")) + setattr(cls, "CF-HS", + PermissibleValue( + text="CF-HS", + description="Region code for Haute-Sangha / Mambéré-Kadéï.")) + setattr(cls, "CF-KB", + PermissibleValue( + text="CF-KB", + description="Region code for Gribingui.")) + setattr(cls, "CF-KG", + PermissibleValue( + text="CF-KG", + description="Region code for Kémo-Gribingui.")) + setattr(cls, "CF-LB", + PermissibleValue( + text="CF-LB", + description="Region code for Lobaye.")) + setattr(cls, "CF-MB", + PermissibleValue( + text="CF-MB", + description="Region code for Mbomou.")) + setattr(cls, "CF-MP", + PermissibleValue( + text="CF-MP", + description="Region code for Ombella-Mpoko.")) + setattr(cls, "CF-NM", + PermissibleValue( + text="CF-NM", + description="Region code for Nana-Mambéré.")) + setattr(cls, "CF-OP", + PermissibleValue( + text="CF-OP", + description="Region code for Ouham-Pendé.")) + setattr(cls, "CF-SE", + PermissibleValue( + text="CF-SE", + description="Region code for Sangha.")) + setattr(cls, "CF-UK", + PermissibleValue( + text="CF-UK", + description="Region code for Ouaka.")) + setattr(cls, "CF-VK", + PermissibleValue( + text="CF-VK", + description="Region code for Vakaga.")) + setattr(cls, "CG-11", + PermissibleValue( + text="CG-11", + description="Region code for Bouenza.")) + setattr(cls, "CG-12", + PermissibleValue( + text="CG-12", + description="Region code for Pool.")) + setattr(cls, "CG-13", + PermissibleValue( + text="CG-13", + description="Region code for Sangha.")) + setattr(cls, "CG-14", + PermissibleValue( + text="CG-14", + description="Region code for Plateaux.")) + setattr(cls, "CG-15", + PermissibleValue( + text="CG-15", + description="Region code for Cuvette-Ouest.")) + setattr(cls, "CG-16", + PermissibleValue( + text="CG-16", + description="Region code for Pointe-Noire.")) + setattr(cls, "CG-2", + PermissibleValue( + text="CG-2", + description="Region code for Lékoumou.")) + setattr(cls, "CG-5", + PermissibleValue( + text="CG-5", + description="Region code for Kouilou.")) + setattr(cls, "CG-7", + PermissibleValue( + text="CG-7", + description="Region code for Likouala.")) + setattr(cls, "CG-8", + PermissibleValue( + text="CG-8", + description="Region code for Cuvette.")) + setattr(cls, "CG-9", + PermissibleValue( + text="CG-9", + description="Region code for Niari.")) + setattr(cls, "CG-BZV", + PermissibleValue( + text="CG-BZV", + description="Region code for Brazzaville.")) + setattr(cls, "CH-AG", + PermissibleValue( + text="CH-AG", + description="Region code for Aargau.")) + setattr(cls, "CH-AI", + PermissibleValue( + text="CH-AI", + description="Region code for Appenzell Innerrhoden.")) + setattr(cls, "CH-AR", + PermissibleValue( + text="CH-AR", + description="Region code for Appenzell Ausserrhoden.")) + setattr(cls, "CH-BE", + PermissibleValue( + text="CH-BE", + description="Region code for Bern.")) + setattr(cls, "CH-BL", + PermissibleValue( + text="CH-BL", + description="Region code for Basel-Landschaft.")) + setattr(cls, "CH-BS", + PermissibleValue( + text="CH-BS", + description="Region code for Basel-Stadt.")) + setattr(cls, "CH-FR", + PermissibleValue( + text="CH-FR", + description="Region code for Freiburg.")) + setattr(cls, "CH-GE", + PermissibleValue( + text="CH-GE", + description="Region code for Genève.")) + setattr(cls, "CH-GL", + PermissibleValue( + text="CH-GL", + description="Region code for Glarus.")) + setattr(cls, "CH-GR", + PermissibleValue( + text="CH-GR", + description="Region code for Graubünden.")) + setattr(cls, "CH-JU", + PermissibleValue( + text="CH-JU", + description="Region code for Jura.")) + setattr(cls, "CH-LU", + PermissibleValue( + text="CH-LU", + description="Region code for Luzern.")) + setattr(cls, "CH-NE", + PermissibleValue( + text="CH-NE", + description="Region code for Neuchâtel.")) + setattr(cls, "CH-NW", + PermissibleValue( + text="CH-NW", + description="Region code for Nidwalden.")) + setattr(cls, "CH-OW", + PermissibleValue( + text="CH-OW", + description="Region code for Obwalden.")) + setattr(cls, "CH-SG", + PermissibleValue( + text="CH-SG", + description="Region code for Sankt Gallen.")) + setattr(cls, "CH-SH", + PermissibleValue( + text="CH-SH", + description="Region code for Schaffhausen.")) + setattr(cls, "CH-SO", + PermissibleValue( + text="CH-SO", + description="Region code for Solothurn.")) + setattr(cls, "CH-SZ", + PermissibleValue( + text="CH-SZ", + description="Region code for Schwyz.")) + setattr(cls, "CH-TG", + PermissibleValue( + text="CH-TG", + description="Region code for Thurgau.")) + setattr(cls, "CH-TI", + PermissibleValue( + text="CH-TI", + description="Region code for Ticino.")) + setattr(cls, "CH-UR", + PermissibleValue( + text="CH-UR", + description="Region code for Uri.")) + setattr(cls, "CH-VD", + PermissibleValue( + text="CH-VD", + description="Region code for Vaud.")) + setattr(cls, "CH-VS", + PermissibleValue( + text="CH-VS", + description="Region code for Wallis.")) + setattr(cls, "CH-ZG", + PermissibleValue( + text="CH-ZG", + description="Region code for Zug.")) + setattr(cls, "CH-ZH", + PermissibleValue( + text="CH-ZH", + description="Region code for Zürich.")) + setattr(cls, "CI-AB", + PermissibleValue( + text="CI-AB", + description="Region code for Abidjan.")) + setattr(cls, "CI-BS", + PermissibleValue( + text="CI-BS", + description="Region code for Bas-Sassandra.")) + setattr(cls, "CI-CM", + PermissibleValue( + text="CI-CM", + description="Region code for Comoé.")) + setattr(cls, "CI-DN", + PermissibleValue( + text="CI-DN", + description="Region code for Denguélé.")) + setattr(cls, "CI-GD", + PermissibleValue( + text="CI-GD", + description="Region code for Gôh-Djiboua.")) + setattr(cls, "CI-LC", + PermissibleValue( + text="CI-LC", + description="Region code for Lacs.")) + setattr(cls, "CI-LG", + PermissibleValue( + text="CI-LG", + description="Region code for Lagunes.")) + setattr(cls, "CI-MG", + PermissibleValue( + text="CI-MG", + description="Region code for Montagnes.")) + setattr(cls, "CI-SM", + PermissibleValue( + text="CI-SM", + description="Region code for Sassandra-Marahoué.")) + setattr(cls, "CI-SV", + PermissibleValue( + text="CI-SV", + description="Region code for Savanes.")) + setattr(cls, "CI-VB", + PermissibleValue( + text="CI-VB", + description="Region code for Vallée du Bandama.")) + setattr(cls, "CI-WR", + PermissibleValue( + text="CI-WR", + description="Region code for Woroba.")) + setattr(cls, "CI-YM", + PermissibleValue( + text="CI-YM", + description="Region code for Yamoussoukro.")) + setattr(cls, "CI-ZZ", + PermissibleValue( + text="CI-ZZ", + description="Region code for Zanzan.")) + setattr(cls, "CL-AI", + PermissibleValue( + text="CL-AI", + description="Region code for Aisén del General Carlos Ibañez del Campo.")) + setattr(cls, "CL-AN", + PermissibleValue( + text="CL-AN", + description="Region code for Antofagasta.")) + setattr(cls, "CL-AP", + PermissibleValue( + text="CL-AP", + description="Region code for Arica y Parinacota.")) + setattr(cls, "CL-AR", + PermissibleValue( + text="CL-AR", + description="Region code for La Araucanía.")) + setattr(cls, "CL-AT", + PermissibleValue( + text="CL-AT", + description="Region code for Atacama.")) + setattr(cls, "CL-BI", + PermissibleValue( + text="CL-BI", + description="Region code for Biobío.")) + setattr(cls, "CL-CO", + PermissibleValue( + text="CL-CO", + description="Region code for Coquimbo.")) + setattr(cls, "CL-LI", + PermissibleValue( + text="CL-LI", + description="Region code for Libertador General Bernardo O'Higgins.")) + setattr(cls, "CL-LL", + PermissibleValue( + text="CL-LL", + description="Region code for Los Lagos.")) + setattr(cls, "CL-LR", + PermissibleValue( + text="CL-LR", + description="Region code for Los Ríos.")) + setattr(cls, "CL-MA", + PermissibleValue( + text="CL-MA", + description="Region code for Magallanes.")) + setattr(cls, "CL-ML", + PermissibleValue( + text="CL-ML", + description="Region code for Maule.")) + setattr(cls, "CL-NB", + PermissibleValue( + text="CL-NB", + description="Region code for Ñuble.")) + setattr(cls, "CL-RM", + PermissibleValue( + text="CL-RM", + description="Region code for Región Metropolitana de Santiago.")) + setattr(cls, "CL-TA", + PermissibleValue( + text="CL-TA", + description="Region code for Tarapacá.")) + setattr(cls, "CL-VS", + PermissibleValue( + text="CL-VS", + description="Region code for Valparaíso.")) + setattr(cls, "CM-AD", + PermissibleValue( + text="CM-AD", + description="Region code for Adamaoua.")) + setattr(cls, "CM-CE", + PermissibleValue( + text="CM-CE", + description="Region code for Centre.")) + setattr(cls, "CM-EN", + PermissibleValue( + text="CM-EN", + description="Region code for Far North.")) + setattr(cls, "CM-ES", + PermissibleValue( + text="CM-ES", + description="Region code for East.")) + setattr(cls, "CM-LT", + PermissibleValue( + text="CM-LT", + description="Region code for Littoral.")) + setattr(cls, "CM-NO", + PermissibleValue( + text="CM-NO", + description="Region code for North.")) + setattr(cls, "CM-NW", + PermissibleValue( + text="CM-NW", + description="Region code for North-West.")) + setattr(cls, "CM-OU", + PermissibleValue( + text="CM-OU", + description="Region code for West.")) + setattr(cls, "CM-SU", + PermissibleValue( + text="CM-SU", + description="Region code for South.")) + setattr(cls, "CM-SW", + PermissibleValue( + text="CM-SW", + description="Region code for South-West.")) + setattr(cls, "CN-AH", + PermissibleValue( + text="CN-AH", + description="Region code for Anhui Sheng.")) + setattr(cls, "CN-BJ", + PermissibleValue( + text="CN-BJ", + description="Region code for Beijing Shi.")) + setattr(cls, "CN-CQ", + PermissibleValue( + text="CN-CQ", + description="Region code for Chongqing Shi.")) + setattr(cls, "CN-FJ", + PermissibleValue( + text="CN-FJ", + description="Region code for Fujian Sheng.")) + setattr(cls, "CN-GD", + PermissibleValue( + text="CN-GD", + description="Region code for Guangdong Sheng.")) + setattr(cls, "CN-GS", + PermissibleValue( + text="CN-GS", + description="Region code for Gansu Sheng.")) + setattr(cls, "CN-GX", + PermissibleValue( + text="CN-GX", + description="Region code for Guangxi Zhuangzu Zizhiqu.")) + setattr(cls, "CN-GZ", + PermissibleValue( + text="CN-GZ", + description="Region code for Guizhou Sheng.")) + setattr(cls, "CN-HA", + PermissibleValue( + text="CN-HA", + description="Region code for Henan Sheng.")) + setattr(cls, "CN-HB", + PermissibleValue( + text="CN-HB", + description="Region code for Hubei Sheng.")) + setattr(cls, "CN-HE", + PermissibleValue( + text="CN-HE", + description="Region code for Hebei Sheng.")) + setattr(cls, "CN-HI", + PermissibleValue( + text="CN-HI", + description="Region code for Hainan Sheng.")) + setattr(cls, "CN-HK", + PermissibleValue( + text="CN-HK", + description="Region code for Hong Kong SAR (see also separate country code entry under HK).")) + setattr(cls, "CN-HL", + PermissibleValue( + text="CN-HL", + description="Region code for Heilongjiang Sheng.")) + setattr(cls, "CN-HN", + PermissibleValue( + text="CN-HN", + description="Region code for Hunan Sheng.")) + setattr(cls, "CN-JL", + PermissibleValue( + text="CN-JL", + description="Region code for Jilin Sheng.")) + setattr(cls, "CN-JS", + PermissibleValue( + text="CN-JS", + description="Region code for Jiangsu Sheng.")) + setattr(cls, "CN-JX", + PermissibleValue( + text="CN-JX", + description="Region code for Jiangxi Sheng.")) + setattr(cls, "CN-LN", + PermissibleValue( + text="CN-LN", + description="Region code for Liaoning Sheng.")) + setattr(cls, "CN-MO", + PermissibleValue( + text="CN-MO", + description="Region code for Macao SAR (see also separate country code entry under MO).")) + setattr(cls, "CN-NM", + PermissibleValue( + text="CN-NM", + description="Region code for Nei Mongol Zizhiqu.")) + setattr(cls, "CN-NX", + PermissibleValue( + text="CN-NX", + description="Region code for Ningxia Huizu Zizhiqu.")) + setattr(cls, "CN-QH", + PermissibleValue( + text="CN-QH", + description="Region code for Qinghai Sheng.")) + setattr(cls, "CN-SC", + PermissibleValue( + text="CN-SC", + description="Region code for Sichuan Sheng.")) + setattr(cls, "CN-SD", + PermissibleValue( + text="CN-SD", + description="Region code for Shandong Sheng.")) + setattr(cls, "CN-SH", + PermissibleValue( + text="CN-SH", + description="Region code for Shanghai Shi.")) + setattr(cls, "CN-SN", + PermissibleValue( + text="CN-SN", + description="Region code for Shaanxi Sheng.")) + setattr(cls, "CN-SX", + PermissibleValue( + text="CN-SX", + description="Region code for Shanxi Sheng.")) + setattr(cls, "CN-TJ", + PermissibleValue( + text="CN-TJ", + description="Region code for Tianjin Shi.")) + setattr(cls, "CN-TW", + PermissibleValue( + text="CN-TW", + description="Region code for Taiwan Sheng (see also separate country code entry under TW).")) + setattr(cls, "CN-XJ", + PermissibleValue( + text="CN-XJ", + description="Region code for Xinjiang Uygur Zizhiqu.")) + setattr(cls, "CN-XZ", + PermissibleValue( + text="CN-XZ", + description="Region code for Xizang Zizhiqu.")) + setattr(cls, "CN-YN", + PermissibleValue( + text="CN-YN", + description="Region code for Yunnan Sheng.")) + setattr(cls, "CN-ZJ", + PermissibleValue( + text="CN-ZJ", + description="Region code for Zhejiang Sheng.")) + setattr(cls, "CO-AMA", + PermissibleValue( + text="CO-AMA", + description="Region code for Amazonas.")) + setattr(cls, "CO-ANT", + PermissibleValue( + text="CO-ANT", + description="Region code for Antioquia.")) + setattr(cls, "CO-ARA", + PermissibleValue( + text="CO-ARA", + description="Region code for Arauca.")) + setattr(cls, "CO-ATL", + PermissibleValue( + text="CO-ATL", + description="Region code for Atlántico.")) + setattr(cls, "CO-BOL", + PermissibleValue( + text="CO-BOL", + description="Region code for Bolívar.")) + setattr(cls, "CO-BOY", + PermissibleValue( + text="CO-BOY", + description="Region code for Boyacá.")) + setattr(cls, "CO-CAL", + PermissibleValue( + text="CO-CAL", + description="Region code for Caldas.")) + setattr(cls, "CO-CAQ", + PermissibleValue( + text="CO-CAQ", + description="Region code for Caquetá.")) + setattr(cls, "CO-CAS", + PermissibleValue( + text="CO-CAS", + description="Region code for Casanare.")) + setattr(cls, "CO-CAU", + PermissibleValue( + text="CO-CAU", + description="Region code for Cauca.")) + setattr(cls, "CO-CES", + PermissibleValue( + text="CO-CES", + description="Region code for Cesar.")) + setattr(cls, "CO-CHO", + PermissibleValue( + text="CO-CHO", + description="Region code for Chocó.")) + setattr(cls, "CO-COR", + PermissibleValue( + text="CO-COR", + description="Region code for Córdoba.")) + setattr(cls, "CO-CUN", + PermissibleValue( + text="CO-CUN", + description="Region code for Cundinamarca.")) + setattr(cls, "CO-DC", + PermissibleValue( + text="CO-DC", + description="Region code for Distrito Capital de Bogotá.")) + setattr(cls, "CO-GUA", + PermissibleValue( + text="CO-GUA", + description="Region code for Guainía.")) + setattr(cls, "CO-GUV", + PermissibleValue( + text="CO-GUV", + description="Region code for Guaviare.")) + setattr(cls, "CO-HUI", + PermissibleValue( + text="CO-HUI", + description="Region code for Huila.")) + setattr(cls, "CO-LAG", + PermissibleValue( + text="CO-LAG", + description="Region code for La Guajira.")) + setattr(cls, "CO-MAG", + PermissibleValue( + text="CO-MAG", + description="Region code for Magdalena.")) + setattr(cls, "CO-MET", + PermissibleValue( + text="CO-MET", + description="Region code for Meta.")) + setattr(cls, "CO-NAR", + PermissibleValue( + text="CO-NAR", + description="Region code for Nariño.")) + setattr(cls, "CO-NSA", + PermissibleValue( + text="CO-NSA", + description="Region code for Norte de Santander.")) + setattr(cls, "CO-PUT", + PermissibleValue( + text="CO-PUT", + description="Region code for Putumayo.")) + setattr(cls, "CO-QUI", + PermissibleValue( + text="CO-QUI", + description="Region code for Quindío.")) + setattr(cls, "CO-RIS", + PermissibleValue( + text="CO-RIS", + description="Region code for Risaralda.")) + setattr(cls, "CO-SAN", + PermissibleValue( + text="CO-SAN", + description="Region code for Santander.")) + setattr(cls, "CO-SAP", + PermissibleValue( + text="CO-SAP", + description="Region code for San Andrés, Providencia y Santa Catalina.")) + setattr(cls, "CO-SUC", + PermissibleValue( + text="CO-SUC", + description="Region code for Sucre.")) + setattr(cls, "CO-TOL", + PermissibleValue( + text="CO-TOL", + description="Region code for Tolima.")) + setattr(cls, "CO-VAC", + PermissibleValue( + text="CO-VAC", + description="Region code for Valle del Cauca.")) + setattr(cls, "CO-VAU", + PermissibleValue( + text="CO-VAU", + description="Region code for Vaupés.")) + setattr(cls, "CO-VID", + PermissibleValue( + text="CO-VID", + description="Region code for Vichada.")) + setattr(cls, "CR-A", + PermissibleValue( + text="CR-A", + description="Region code for Alajuela.")) + setattr(cls, "CR-C", + PermissibleValue( + text="CR-C", + description="Region code for Cartago.")) + setattr(cls, "CR-G", + PermissibleValue( + text="CR-G", + description="Region code for Guanacaste.")) + setattr(cls, "CR-H", + PermissibleValue( + text="CR-H", + description="Region code for Heredia.")) + setattr(cls, "CR-L", + PermissibleValue( + text="CR-L", + description="Region code for Limón.")) + setattr(cls, "CR-P", + PermissibleValue( + text="CR-P", + description="Region code for Puntarenas.")) + setattr(cls, "CR-SJ", + PermissibleValue( + text="CR-SJ", + description="Region code for San José.")) + setattr(cls, "CU-01", + PermissibleValue( + text="CU-01", + description="Region code for Pinar del Río.")) + setattr(cls, "CU-03", + PermissibleValue( + text="CU-03", + description="Region code for La Habana.")) + setattr(cls, "CU-04", + PermissibleValue( + text="CU-04", + description="Region code for Matanzas.")) + setattr(cls, "CU-05", + PermissibleValue( + text="CU-05", + description="Region code for Villa Clara.")) + setattr(cls, "CU-06", + PermissibleValue( + text="CU-06", + description="Region code for Cienfuegos.")) + setattr(cls, "CU-07", + PermissibleValue( + text="CU-07", + description="Region code for Sancti Spíritus.")) + setattr(cls, "CU-08", + PermissibleValue( + text="CU-08", + description="Region code for Ciego de Ávila.")) + setattr(cls, "CU-09", + PermissibleValue( + text="CU-09", + description="Region code for Camagüey.")) + setattr(cls, "CU-10", + PermissibleValue( + text="CU-10", + description="Region code for Las Tunas.")) + setattr(cls, "CU-11", + PermissibleValue( + text="CU-11", + description="Region code for Holguín.")) + setattr(cls, "CU-12", + PermissibleValue( + text="CU-12", + description="Region code for Granma.")) + setattr(cls, "CU-13", + PermissibleValue( + text="CU-13", + description="Region code for Santiago de Cuba.")) + setattr(cls, "CU-14", + PermissibleValue( + text="CU-14", + description="Region code for Guantánamo.")) + setattr(cls, "CU-15", + PermissibleValue( + text="CU-15", + description="Region code for Artemisa.")) + setattr(cls, "CU-16", + PermissibleValue( + text="CU-16", + description="Region code for Mayabeque.")) + setattr(cls, "CU-99", + PermissibleValue( + text="CU-99", + description="Region code for Isla de la Juventud.")) + setattr(cls, "CV-B", + PermissibleValue( + text="CV-B", + description="Region code for Ilhas de Barlavento.")) + setattr(cls, "CV-BR", + PermissibleValue( + text="CV-BR", + description="Region code for Brava.")) + setattr(cls, "CV-BV", + PermissibleValue( + text="CV-BV", + description="Region code for Boa Vista.")) + setattr(cls, "CV-CA", + PermissibleValue( + text="CV-CA", + description="Region code for Santa Catarina.")) + setattr(cls, "CV-CF", + PermissibleValue( + text="CV-CF", + description="Region code for Santa Catarina do Fogo.")) + setattr(cls, "CV-CR", + PermissibleValue( + text="CV-CR", + description="Region code for Santa Cruz.")) + setattr(cls, "CV-MA", + PermissibleValue( + text="CV-MA", + description="Region code for Maio.")) + setattr(cls, "CV-MO", + PermissibleValue( + text="CV-MO", + description="Region code for Mosteiros.")) + setattr(cls, "CV-PA", + PermissibleValue( + text="CV-PA", + description="Region code for Paul.")) + setattr(cls, "CV-PN", + PermissibleValue( + text="CV-PN", + description="Region code for Porto Novo.")) + setattr(cls, "CV-PR", + PermissibleValue( + text="CV-PR", + description="Region code for Praia.")) + setattr(cls, "CV-RB", + PermissibleValue( + text="CV-RB", + description="Region code for Ribeira Brava.")) + setattr(cls, "CV-RG", + PermissibleValue( + text="CV-RG", + description="Region code for Ribeira Grande.")) + setattr(cls, "CV-RS", + PermissibleValue( + text="CV-RS", + description="Region code for Ribeira Grande de Santiago.")) + setattr(cls, "CV-S", + PermissibleValue( + text="CV-S", + description="Region code for Ilhas de Sotavento.")) + setattr(cls, "CV-SD", + PermissibleValue( + text="CV-SD", + description="Region code for São Domingos.")) + setattr(cls, "CV-SF", + PermissibleValue( + text="CV-SF", + description="Region code for São Filipe.")) + setattr(cls, "CV-SL", + PermissibleValue( + text="CV-SL", + description="Region code for Sal.")) + setattr(cls, "CV-SM", + PermissibleValue( + text="CV-SM", + description="Region code for São Miguel.")) + setattr(cls, "CV-SO", + PermissibleValue( + text="CV-SO", + description="Region code for São Lourenço dos Órgãos.")) + setattr(cls, "CV-SS", + PermissibleValue( + text="CV-SS", + description="Region code for São Salvador do Mundo.")) + setattr(cls, "CV-SV", + PermissibleValue( + text="CV-SV", + description="Region code for São Vicente.")) + setattr(cls, "CV-TA", + PermissibleValue( + text="CV-TA", + description="Region code for Tarrafal.")) + setattr(cls, "CV-TS", + PermissibleValue( + text="CV-TS", + description="Region code for Tarrafal de São Nicolau.")) + setattr(cls, "CY-01", + PermissibleValue( + text="CY-01", + description="Region code for Lefkosia.")) + setattr(cls, "CY-02", + PermissibleValue( + text="CY-02", + description="Region code for Lemesos.")) + setattr(cls, "CY-03", + PermissibleValue( + text="CY-03", + description="Region code for Larnaka.")) + setattr(cls, "CY-04", + PermissibleValue( + text="CY-04", + description="Region code for Ammochostos.")) + setattr(cls, "CY-05", + PermissibleValue( + text="CY-05", + description="Region code for Pafos.")) + setattr(cls, "CY-06", + PermissibleValue( + text="CY-06", + description="Region code for Keryneia.")) + setattr(cls, "CZ-10", + PermissibleValue( + text="CZ-10", + description="Region code for Praha, Hlavní město.")) + setattr(cls, "CZ-20", + PermissibleValue( + text="CZ-20", + description="Region code for Středočeský kraj.")) + setattr(cls, "CZ-201", + PermissibleValue( + text="CZ-201", + description="Region code for Benešov.")) + setattr(cls, "CZ-202", + PermissibleValue( + text="CZ-202", + description="Region code for Beroun.")) + setattr(cls, "CZ-203", + PermissibleValue( + text="CZ-203", + description="Region code for Kladno.")) + setattr(cls, "CZ-204", + PermissibleValue( + text="CZ-204", + description="Region code for Kolín.")) + setattr(cls, "CZ-205", + PermissibleValue( + text="CZ-205", + description="Region code for Kutná Hora.")) + setattr(cls, "CZ-206", + PermissibleValue( + text="CZ-206", + description="Region code for Mělník.")) + setattr(cls, "CZ-207", + PermissibleValue( + text="CZ-207", + description="Region code for Mladá Boleslav.")) + setattr(cls, "CZ-208", + PermissibleValue( + text="CZ-208", + description="Region code for Nymburk.")) + setattr(cls, "CZ-209", + PermissibleValue( + text="CZ-209", + description="Region code for Praha-východ.")) + setattr(cls, "CZ-20A", + PermissibleValue( + text="CZ-20A", + description="Region code for Praha-západ.")) + setattr(cls, "CZ-20B", + PermissibleValue( + text="CZ-20B", + description="Region code for Příbram.")) + setattr(cls, "CZ-20C", + PermissibleValue( + text="CZ-20C", + description="Region code for Rakovník.")) + setattr(cls, "CZ-31", + PermissibleValue( + text="CZ-31", + description="Region code for Jihočeský kraj.")) + setattr(cls, "CZ-311", + PermissibleValue( + text="CZ-311", + description="Region code for České Budějovice.")) + setattr(cls, "CZ-312", + PermissibleValue( + text="CZ-312", + description="Region code for Český Krumlov.")) + setattr(cls, "CZ-313", + PermissibleValue( + text="CZ-313", + description="Region code for Jindřichův Hradec.")) + setattr(cls, "CZ-314", + PermissibleValue( + text="CZ-314", + description="Region code for Písek.")) + setattr(cls, "CZ-315", + PermissibleValue( + text="CZ-315", + description="Region code for Prachatice.")) + setattr(cls, "CZ-316", + PermissibleValue( + text="CZ-316", + description="Region code for Strakonice.")) + setattr(cls, "CZ-317", + PermissibleValue( + text="CZ-317", + description="Region code for Tábor.")) + setattr(cls, "CZ-32", + PermissibleValue( + text="CZ-32", + description="Region code for Plzeňský kraj.")) + setattr(cls, "CZ-321", + PermissibleValue( + text="CZ-321", + description="Region code for Domažlice.")) + setattr(cls, "CZ-322", + PermissibleValue( + text="CZ-322", + description="Region code for Klatovy.")) + setattr(cls, "CZ-323", + PermissibleValue( + text="CZ-323", + description="Region code for Plzeň-město.")) + setattr(cls, "CZ-324", + PermissibleValue( + text="CZ-324", + description="Region code for Plzeň-jih.")) + setattr(cls, "CZ-325", + PermissibleValue( + text="CZ-325", + description="Region code for Plzeň-sever.")) + setattr(cls, "CZ-326", + PermissibleValue( + text="CZ-326", + description="Region code for Rokycany.")) + setattr(cls, "CZ-327", + PermissibleValue( + text="CZ-327", + description="Region code for Tachov.")) + setattr(cls, "CZ-41", + PermissibleValue( + text="CZ-41", + description="Region code for Karlovarský kraj.")) + setattr(cls, "CZ-411", + PermissibleValue( + text="CZ-411", + description="Region code for Cheb.")) + setattr(cls, "CZ-412", + PermissibleValue( + text="CZ-412", + description="Region code for Karlovy Vary.")) + setattr(cls, "CZ-413", + PermissibleValue( + text="CZ-413", + description="Region code for Sokolov.")) + setattr(cls, "CZ-42", + PermissibleValue( + text="CZ-42", + description="Region code for Ústecký kraj.")) + setattr(cls, "CZ-421", + PermissibleValue( + text="CZ-421", + description="Region code for Děčín.")) + setattr(cls, "CZ-422", + PermissibleValue( + text="CZ-422", + description="Region code for Chomutov.")) + setattr(cls, "CZ-423", + PermissibleValue( + text="CZ-423", + description="Region code for Litoměřice.")) + setattr(cls, "CZ-424", + PermissibleValue( + text="CZ-424", + description="Region code for Louny.")) + setattr(cls, "CZ-425", + PermissibleValue( + text="CZ-425", + description="Region code for Most.")) + setattr(cls, "CZ-426", + PermissibleValue( + text="CZ-426", + description="Region code for Teplice.")) + setattr(cls, "CZ-427", + PermissibleValue( + text="CZ-427", + description="Region code for Ústí nad Labem.")) + setattr(cls, "CZ-51", + PermissibleValue( + text="CZ-51", + description="Region code for Liberecký kraj.")) + setattr(cls, "CZ-511", + PermissibleValue( + text="CZ-511", + description="Region code for Česká Lípa.")) + setattr(cls, "CZ-512", + PermissibleValue( + text="CZ-512", + description="Region code for Jablonec nad Nisou.")) + setattr(cls, "CZ-513", + PermissibleValue( + text="CZ-513", + description="Region code for Liberec.")) + setattr(cls, "CZ-514", + PermissibleValue( + text="CZ-514", + description="Region code for Semily.")) + setattr(cls, "CZ-52", + PermissibleValue( + text="CZ-52", + description="Region code for Královéhradecký kraj.")) + setattr(cls, "CZ-521", + PermissibleValue( + text="CZ-521", + description="Region code for Hradec Králové.")) + setattr(cls, "CZ-522", + PermissibleValue( + text="CZ-522", + description="Region code for Jičín.")) + setattr(cls, "CZ-523", + PermissibleValue( + text="CZ-523", + description="Region code for Náchod.")) + setattr(cls, "CZ-524", + PermissibleValue( + text="CZ-524", + description="Region code for Rychnov nad Kněžnou.")) + setattr(cls, "CZ-525", + PermissibleValue( + text="CZ-525", + description="Region code for Trutnov.")) + setattr(cls, "CZ-53", + PermissibleValue( + text="CZ-53", + description="Region code for Pardubický kraj.")) + setattr(cls, "CZ-531", + PermissibleValue( + text="CZ-531", + description="Region code for Chrudim.")) + setattr(cls, "CZ-532", + PermissibleValue( + text="CZ-532", + description="Region code for Pardubice.")) + setattr(cls, "CZ-533", + PermissibleValue( + text="CZ-533", + description="Region code for Svitavy.")) + setattr(cls, "CZ-534", + PermissibleValue( + text="CZ-534", + description="Region code for Ústí nad Orlicí.")) + setattr(cls, "CZ-63", + PermissibleValue( + text="CZ-63", + description="Region code for Kraj Vysočina.")) + setattr(cls, "CZ-631", + PermissibleValue( + text="CZ-631", + description="Region code for Havlíčkův Brod.")) + setattr(cls, "CZ-632", + PermissibleValue( + text="CZ-632", + description="Region code for Jihlava.")) + setattr(cls, "CZ-633", + PermissibleValue( + text="CZ-633", + description="Region code for Pelhřimov.")) + setattr(cls, "CZ-634", + PermissibleValue( + text="CZ-634", + description="Region code for Třebíč.")) + setattr(cls, "CZ-635", + PermissibleValue( + text="CZ-635", + description="Region code for Žďár nad Sázavou.")) + setattr(cls, "CZ-64", + PermissibleValue( + text="CZ-64", + description="Region code for Jihomoravský kraj.")) + setattr(cls, "CZ-641", + PermissibleValue( + text="CZ-641", + description="Region code for Blansko.")) + setattr(cls, "CZ-642", + PermissibleValue( + text="CZ-642", + description="Region code for Brno-město.")) + setattr(cls, "CZ-643", + PermissibleValue( + text="CZ-643", + description="Region code for Brno-venkov.")) + setattr(cls, "CZ-644", + PermissibleValue( + text="CZ-644", + description="Region code for Břeclav.")) + setattr(cls, "CZ-645", + PermissibleValue( + text="CZ-645", + description="Region code for Hodonín.")) + setattr(cls, "CZ-646", + PermissibleValue( + text="CZ-646", + description="Region code for Vyškov.")) + setattr(cls, "CZ-647", + PermissibleValue( + text="CZ-647", + description="Region code for Znojmo.")) + setattr(cls, "CZ-71", + PermissibleValue( + text="CZ-71", + description="Region code for Olomoucký kraj.")) + setattr(cls, "CZ-711", + PermissibleValue( + text="CZ-711", + description="Region code for Jeseník.")) + setattr(cls, "CZ-712", + PermissibleValue( + text="CZ-712", + description="Region code for Olomouc.")) + setattr(cls, "CZ-713", + PermissibleValue( + text="CZ-713", + description="Region code for Prostějov.")) + setattr(cls, "CZ-714", + PermissibleValue( + text="CZ-714", + description="Region code for Přerov.")) + setattr(cls, "CZ-715", + PermissibleValue( + text="CZ-715", + description="Region code for Šumperk.")) + setattr(cls, "CZ-72", + PermissibleValue( + text="CZ-72", + description="Region code for Zlínský kraj.")) + setattr(cls, "CZ-721", + PermissibleValue( + text="CZ-721", + description="Region code for Kroměříž.")) + setattr(cls, "CZ-722", + PermissibleValue( + text="CZ-722", + description="Region code for Uherské Hradiště.")) + setattr(cls, "CZ-723", + PermissibleValue( + text="CZ-723", + description="Region code for Vsetín.")) + setattr(cls, "CZ-724", + PermissibleValue( + text="CZ-724", + description="Region code for Zlín.")) + setattr(cls, "CZ-80", + PermissibleValue( + text="CZ-80", + description="Region code for Moravskoslezský kraj.")) + setattr(cls, "CZ-801", + PermissibleValue( + text="CZ-801", + description="Region code for Bruntál.")) + setattr(cls, "CZ-802", + PermissibleValue( + text="CZ-802", + description="Region code for Frýdek-Místek.")) + setattr(cls, "CZ-803", + PermissibleValue( + text="CZ-803", + description="Region code for Karviná.")) + setattr(cls, "CZ-804", + PermissibleValue( + text="CZ-804", + description="Region code for Nový Jičín.")) + setattr(cls, "CZ-805", + PermissibleValue( + text="CZ-805", + description="Region code for Opava.")) + setattr(cls, "CZ-806", + PermissibleValue( + text="CZ-806", + description="Region code for Ostrava-město.")) + setattr(cls, "DE-BB", + PermissibleValue( + text="DE-BB", + description="Region code for Brandenburg.")) + setattr(cls, "DE-BE", + PermissibleValue( + text="DE-BE", + description="Region code for Berlin.")) + setattr(cls, "DE-BW", + PermissibleValue( + text="DE-BW", + description="Region code for Baden-Württemberg.")) + setattr(cls, "DE-BY", + PermissibleValue( + text="DE-BY", + description="Region code for Bayern.")) + setattr(cls, "DE-HB", + PermissibleValue( + text="DE-HB", + description="Region code for Bremen.")) + setattr(cls, "DE-HE", + PermissibleValue( + text="DE-HE", + description="Region code for Hessen.")) + setattr(cls, "DE-HH", + PermissibleValue( + text="DE-HH", + description="Region code for Hamburg.")) + setattr(cls, "DE-MV", + PermissibleValue( + text="DE-MV", + description="Region code for Mecklenburg-Vorpommern.")) + setattr(cls, "DE-NI", + PermissibleValue( + text="DE-NI", + description="Region code for Niedersachsen.")) + setattr(cls, "DE-NW", + PermissibleValue( + text="DE-NW", + description="Region code for Nordrhein-Westfalen.")) + setattr(cls, "DE-RP", + PermissibleValue( + text="DE-RP", + description="Region code for Rheinland-Pfalz.")) + setattr(cls, "DE-SH", + PermissibleValue( + text="DE-SH", + description="Region code for Schleswig-Holstein.")) + setattr(cls, "DE-SL", + PermissibleValue( + text="DE-SL", + description="Region code for Saarland.")) + setattr(cls, "DE-SN", + PermissibleValue( + text="DE-SN", + description="Region code for Sachsen.")) + setattr(cls, "DE-ST", + PermissibleValue( + text="DE-ST", + description="Region code for Sachsen-Anhalt.")) + setattr(cls, "DE-TH", + PermissibleValue( + text="DE-TH", + description="Region code for Thüringen.")) + setattr(cls, "DJ-AR", + PermissibleValue( + text="DJ-AR", + description="Region code for ‘Artā.")) + setattr(cls, "DJ-AS", + PermissibleValue( + text="DJ-AS", + description="Region code for ‘Alī Şabīḩ.")) + setattr(cls, "DJ-DI", + PermissibleValue( + text="DJ-DI", + description="Region code for Dikhīl.")) + setattr(cls, "DJ-DJ", + PermissibleValue( + text="DJ-DJ", + description="Region code for Jībūtī.")) + setattr(cls, "DJ-OB", + PermissibleValue( + text="DJ-OB", + description="Region code for Awbūk.")) + setattr(cls, "DJ-TA", + PermissibleValue( + text="DJ-TA", + description="Region code for Tājūrah.")) + setattr(cls, "DK-81", + PermissibleValue( + text="DK-81", + description="Region code for Nordjylland.")) + setattr(cls, "DK-82", + PermissibleValue( + text="DK-82", + description="Region code for Midtjylland.")) + setattr(cls, "DK-83", + PermissibleValue( + text="DK-83", + description="Region code for Syddanmark.")) + setattr(cls, "DK-84", + PermissibleValue( + text="DK-84", + description="Region code for Hovedstaden.")) + setattr(cls, "DK-85", + PermissibleValue( + text="DK-85", + description="Region code for Sjælland.")) + setattr(cls, "DM-02", + PermissibleValue( + text="DM-02", + description="Region code for Saint Andrew.")) + setattr(cls, "DM-03", + PermissibleValue( + text="DM-03", + description="Region code for Saint David.")) + setattr(cls, "DM-04", + PermissibleValue( + text="DM-04", + description="Region code for Saint George.")) + setattr(cls, "DM-05", + PermissibleValue( + text="DM-05", + description="Region code for Saint John.")) + setattr(cls, "DM-06", + PermissibleValue( + text="DM-06", + description="Region code for Saint Joseph.")) + setattr(cls, "DM-07", + PermissibleValue( + text="DM-07", + description="Region code for Saint Luke.")) + setattr(cls, "DM-08", + PermissibleValue( + text="DM-08", + description="Region code for Saint Mark.")) + setattr(cls, "DM-09", + PermissibleValue( + text="DM-09", + description="Region code for Saint Patrick.")) + setattr(cls, "DM-10", + PermissibleValue( + text="DM-10", + description="Region code for Saint Paul.")) + setattr(cls, "DM-11", + PermissibleValue( + text="DM-11", + description="Region code for Saint Peter.")) + setattr(cls, "DO-01", + PermissibleValue( + text="DO-01", + description="Region code for Distrito Nacional (Santo Domingo).")) + setattr(cls, "DO-02", + PermissibleValue( + text="DO-02", + description="Region code for Azua.")) + setattr(cls, "DO-03", + PermissibleValue( + text="DO-03", + description="Region code for Baoruco.")) + setattr(cls, "DO-04", + PermissibleValue( + text="DO-04", + description="Region code for Barahona.")) + setattr(cls, "DO-05", + PermissibleValue( + text="DO-05", + description="Region code for Dajabón.")) + setattr(cls, "DO-06", + PermissibleValue( + text="DO-06", + description="Region code for Duarte.")) + setattr(cls, "DO-07", + PermissibleValue( + text="DO-07", + description="Region code for Elías Piña.")) + setattr(cls, "DO-08", + PermissibleValue( + text="DO-08", + description="Region code for El Seibo.")) + setattr(cls, "DO-09", + PermissibleValue( + text="DO-09", + description="Region code for Espaillat.")) + setattr(cls, "DO-10", + PermissibleValue( + text="DO-10", + description="Region code for Independencia.")) + setattr(cls, "DO-11", + PermissibleValue( + text="DO-11", + description="Region code for La Altagracia.")) + setattr(cls, "DO-12", + PermissibleValue( + text="DO-12", + description="Region code for La Romana.")) + setattr(cls, "DO-13", + PermissibleValue( + text="DO-13", + description="Region code for La Vega.")) + setattr(cls, "DO-14", + PermissibleValue( + text="DO-14", + description="Region code for María Trinidad Sánchez.")) + setattr(cls, "DO-15", + PermissibleValue( + text="DO-15", + description="Region code for Monte Cristi.")) + setattr(cls, "DO-16", + PermissibleValue( + text="DO-16", + description="Region code for Pedernales.")) + setattr(cls, "DO-17", + PermissibleValue( + text="DO-17", + description="Region code for Peravia.")) + setattr(cls, "DO-18", + PermissibleValue( + text="DO-18", + description="Region code for Puerto Plata.")) + setattr(cls, "DO-19", + PermissibleValue( + text="DO-19", + description="Region code for Hermanas Mirabal.")) + setattr(cls, "DO-20", + PermissibleValue( + text="DO-20", + description="Region code for Samaná.")) + setattr(cls, "DO-21", + PermissibleValue( + text="DO-21", + description="Region code for San Cristóbal.")) + setattr(cls, "DO-22", + PermissibleValue( + text="DO-22", + description="Region code for San Juan.")) + setattr(cls, "DO-23", + PermissibleValue( + text="DO-23", + description="Region code for San Pedro de Macorís.")) + setattr(cls, "DO-24", + PermissibleValue( + text="DO-24", + description="Region code for Sánchez Ramírez.")) + setattr(cls, "DO-25", + PermissibleValue( + text="DO-25", + description="Region code for Santiago.")) + setattr(cls, "DO-26", + PermissibleValue( + text="DO-26", + description="Region code for Santiago Rodríguez.")) + setattr(cls, "DO-27", + PermissibleValue( + text="DO-27", + description="Region code for Valverde.")) + setattr(cls, "DO-28", + PermissibleValue( + text="DO-28", + description="Region code for Monseñor Nouel.")) + setattr(cls, "DO-29", + PermissibleValue( + text="DO-29", + description="Region code for Monte Plata.")) + setattr(cls, "DO-30", + PermissibleValue( + text="DO-30", + description="Region code for Hato Mayor.")) + setattr(cls, "DO-31", + PermissibleValue( + text="DO-31", + description="Region code for San José de Ocoa.")) + setattr(cls, "DO-32", + PermissibleValue( + text="DO-32", + description="Region code for Santo Domingo.")) + setattr(cls, "DO-33", + PermissibleValue( + text="DO-33", + description="Region code for Cibao Nordeste.")) + setattr(cls, "DO-34", + PermissibleValue( + text="DO-34", + description="Region code for Cibao Noroeste.")) + setattr(cls, "DO-35", + PermissibleValue( + text="DO-35", + description="Region code for Cibao Norte.")) + setattr(cls, "DO-36", + PermissibleValue( + text="DO-36", + description="Region code for Cibao Sur.")) + setattr(cls, "DO-37", + PermissibleValue( + text="DO-37", + description="Region code for El Valle.")) + setattr(cls, "DO-38", + PermissibleValue( + text="DO-38", + description="Region code for Enriquillo.")) + setattr(cls, "DO-39", + PermissibleValue( + text="DO-39", + description="Region code for Higuamo.")) + setattr(cls, "DO-40", + PermissibleValue( + text="DO-40", + description="Region code for Ozama.")) + setattr(cls, "DO-41", + PermissibleValue( + text="DO-41", + description="Region code for Valdesia.")) + setattr(cls, "DO-42", + PermissibleValue( + text="DO-42", + description="Region code for Yuma.")) + setattr(cls, "DZ-01", + PermissibleValue( + text="DZ-01", + description="Region code for Adrar.")) + setattr(cls, "DZ-02", + PermissibleValue( + text="DZ-02", + description="Region code for Chlef.")) + setattr(cls, "DZ-03", + PermissibleValue( + text="DZ-03", + description="Region code for Laghouat.")) + setattr(cls, "DZ-04", + PermissibleValue( + text="DZ-04", + description="Region code for Oum el Bouaghi.")) + setattr(cls, "DZ-05", + PermissibleValue( + text="DZ-05", + description="Region code for Batna.")) + setattr(cls, "DZ-06", + PermissibleValue( + text="DZ-06", + description="Region code for Béjaïa.")) + setattr(cls, "DZ-07", + PermissibleValue( + text="DZ-07", + description="Region code for Biskra.")) + setattr(cls, "DZ-08", + PermissibleValue( + text="DZ-08", + description="Region code for Béchar.")) + setattr(cls, "DZ-09", + PermissibleValue( + text="DZ-09", + description="Region code for Blida.")) + setattr(cls, "DZ-10", + PermissibleValue( + text="DZ-10", + description="Region code for Bouira.")) + setattr(cls, "DZ-11", + PermissibleValue( + text="DZ-11", + description="Region code for Tamanrasset.")) + setattr(cls, "DZ-12", + PermissibleValue( + text="DZ-12", + description="Region code for Tébessa.")) + setattr(cls, "DZ-13", + PermissibleValue( + text="DZ-13", + description="Region code for Tlemcen.")) + setattr(cls, "DZ-14", + PermissibleValue( + text="DZ-14", + description="Region code for Tiaret.")) + setattr(cls, "DZ-15", + PermissibleValue( + text="DZ-15", + description="Region code for Tizi Ouzou.")) + setattr(cls, "DZ-16", + PermissibleValue( + text="DZ-16", + description="Region code for Alger.")) + setattr(cls, "DZ-17", + PermissibleValue( + text="DZ-17", + description="Region code for Djelfa.")) + setattr(cls, "DZ-18", + PermissibleValue( + text="DZ-18", + description="Region code for Jijel.")) + setattr(cls, "DZ-19", + PermissibleValue( + text="DZ-19", + description="Region code for Sétif.")) + setattr(cls, "DZ-20", + PermissibleValue( + text="DZ-20", + description="Region code for Saïda.")) + setattr(cls, "DZ-21", + PermissibleValue( + text="DZ-21", + description="Region code for Skikda.")) + setattr(cls, "DZ-22", + PermissibleValue( + text="DZ-22", + description="Region code for Sidi Bel Abbès.")) + setattr(cls, "DZ-23", + PermissibleValue( + text="DZ-23", + description="Region code for Annaba.")) + setattr(cls, "DZ-24", + PermissibleValue( + text="DZ-24", + description="Region code for Guelma.")) + setattr(cls, "DZ-25", + PermissibleValue( + text="DZ-25", + description="Region code for Constantine.")) + setattr(cls, "DZ-26", + PermissibleValue( + text="DZ-26", + description="Region code for Médéa.")) + setattr(cls, "DZ-27", + PermissibleValue( + text="DZ-27", + description="Region code for Mostaganem.")) + setattr(cls, "DZ-28", + PermissibleValue( + text="DZ-28", + description="Region code for M'sila.")) + setattr(cls, "DZ-29", + PermissibleValue( + text="DZ-29", + description="Region code for Mascara.")) + setattr(cls, "DZ-30", + PermissibleValue( + text="DZ-30", + description="Region code for Ouargla.")) + setattr(cls, "DZ-31", + PermissibleValue( + text="DZ-31", + description="Region code for Oran.")) + setattr(cls, "DZ-32", + PermissibleValue( + text="DZ-32", + description="Region code for El Bayadh.")) + setattr(cls, "DZ-33", + PermissibleValue( + text="DZ-33", + description="Region code for Illizi.")) + setattr(cls, "DZ-34", + PermissibleValue( + text="DZ-34", + description="Region code for Bordj Bou Arréridj.")) + setattr(cls, "DZ-35", + PermissibleValue( + text="DZ-35", + description="Region code for Boumerdès.")) + setattr(cls, "DZ-36", + PermissibleValue( + text="DZ-36", + description="Region code for El Tarf.")) + setattr(cls, "DZ-37", + PermissibleValue( + text="DZ-37", + description="Region code for Tindouf.")) + setattr(cls, "DZ-38", + PermissibleValue( + text="DZ-38", + description="Region code for Tissemsilt.")) + setattr(cls, "DZ-39", + PermissibleValue( + text="DZ-39", + description="Region code for El Oued.")) + setattr(cls, "DZ-40", + PermissibleValue( + text="DZ-40", + description="Region code for Khenchela.")) + setattr(cls, "DZ-41", + PermissibleValue( + text="DZ-41", + description="Region code for Souk Ahras.")) + setattr(cls, "DZ-42", + PermissibleValue( + text="DZ-42", + description="Region code for Tipaza.")) + setattr(cls, "DZ-43", + PermissibleValue( + text="DZ-43", + description="Region code for Mila.")) + setattr(cls, "DZ-44", + PermissibleValue( + text="DZ-44", + description="Region code for Aïn Defla.")) + setattr(cls, "DZ-45", + PermissibleValue( + text="DZ-45", + description="Region code for Naama.")) + setattr(cls, "DZ-46", + PermissibleValue( + text="DZ-46", + description="Region code for Aïn Témouchent.")) + setattr(cls, "DZ-47", + PermissibleValue( + text="DZ-47", + description="Region code for Ghardaïa.")) + setattr(cls, "DZ-48", + PermissibleValue( + text="DZ-48", + description="Region code for Relizane.")) + setattr(cls, "DZ-49", + PermissibleValue( + text="DZ-49", + description="Region code for Timimoun.")) + setattr(cls, "DZ-50", + PermissibleValue( + text="DZ-50", + description="Region code for Bordj Badji Mokhtar.")) + setattr(cls, "DZ-51", + PermissibleValue( + text="DZ-51", + description="Region code for Ouled Djellal.")) + setattr(cls, "DZ-52", + PermissibleValue( + text="DZ-52", + description="Region code for Béni Abbès.")) + setattr(cls, "DZ-53", + PermissibleValue( + text="DZ-53", + description="Region code for In Salah.")) + setattr(cls, "DZ-54", + PermissibleValue( + text="DZ-54", + description="Region code for In Guezzam.")) + setattr(cls, "DZ-55", + PermissibleValue( + text="DZ-55", + description="Region code for Touggourt.")) + setattr(cls, "DZ-56", + PermissibleValue( + text="DZ-56", + description="Region code for Djanet.")) + setattr(cls, "DZ-57", + PermissibleValue( + text="DZ-57", + description="Region code for El Meghaier.")) + setattr(cls, "DZ-58", + PermissibleValue( + text="DZ-58", + description="Region code for El Meniaa.")) + setattr(cls, "EC-A", + PermissibleValue( + text="EC-A", + description="Region code for Azuay.")) + setattr(cls, "EC-B", + PermissibleValue( + text="EC-B", + description="Region code for Bolívar.")) + setattr(cls, "EC-C", + PermissibleValue( + text="EC-C", + description="Region code for Carchi.")) + setattr(cls, "EC-D", + PermissibleValue( + text="EC-D", + description="Region code for Orellana.")) + setattr(cls, "EC-E", + PermissibleValue( + text="EC-E", + description="Region code for Esmeraldas.")) + setattr(cls, "EC-F", + PermissibleValue( + text="EC-F", + description="Region code for Cañar.")) + setattr(cls, "EC-G", + PermissibleValue( + text="EC-G", + description="Region code for Guayas.")) + setattr(cls, "EC-H", + PermissibleValue( + text="EC-H", + description="Region code for Chimborazo.")) + setattr(cls, "EC-I", + PermissibleValue( + text="EC-I", + description="Region code for Imbabura.")) + setattr(cls, "EC-L", + PermissibleValue( + text="EC-L", + description="Region code for Loja.")) + setattr(cls, "EC-M", + PermissibleValue( + text="EC-M", + description="Region code for Manabí.")) + setattr(cls, "EC-N", + PermissibleValue( + text="EC-N", + description="Region code for Napo.")) + setattr(cls, "EC-O", + PermissibleValue( + text="EC-O", + description="Region code for El Oro.")) + setattr(cls, "EC-P", + PermissibleValue( + text="EC-P", + description="Region code for Pichincha.")) + setattr(cls, "EC-R", + PermissibleValue( + text="EC-R", + description="Region code for Los Ríos.")) + setattr(cls, "EC-S", + PermissibleValue( + text="EC-S", + description="Region code for Morona Santiago.")) + setattr(cls, "EC-SD", + PermissibleValue( + text="EC-SD", + description="Region code for Santo Domingo de los Tsáchilas.")) + setattr(cls, "EC-SE", + PermissibleValue( + text="EC-SE", + description="Region code for Santa Elena.")) + setattr(cls, "EC-T", + PermissibleValue( + text="EC-T", + description="Region code for Tungurahua.")) + setattr(cls, "EC-U", + PermissibleValue( + text="EC-U", + description="Region code for Sucumbíos.")) + setattr(cls, "EC-W", + PermissibleValue( + text="EC-W", + description="Region code for Galápagos.")) + setattr(cls, "EC-X", + PermissibleValue( + text="EC-X", + description="Region code for Cotopaxi.")) + setattr(cls, "EC-Y", + PermissibleValue( + text="EC-Y", + description="Region code for Pastaza.")) + setattr(cls, "EC-Z", + PermissibleValue( + text="EC-Z", + description="Region code for Zamora Chinchipe.")) + setattr(cls, "EE-130", + PermissibleValue( + text="EE-130", + description="Region code for Alutaguse.")) + setattr(cls, "EE-141", + PermissibleValue( + text="EE-141", + description="Region code for Anija.")) + setattr(cls, "EE-142", + PermissibleValue( + text="EE-142", + description="Region code for Antsla.")) + setattr(cls, "EE-171", + PermissibleValue( + text="EE-171", + description="Region code for Elva.")) + setattr(cls, "EE-184", + PermissibleValue( + text="EE-184", + description="Region code for Haapsalu.")) + setattr(cls, "EE-191", + PermissibleValue( + text="EE-191", + description="Region code for Haljala.")) + setattr(cls, "EE-198", + PermissibleValue( + text="EE-198", + description="Region code for Harku.")) + setattr(cls, "EE-205", + PermissibleValue( + text="EE-205", + description="Region code for Hiiumaa.")) + setattr(cls, "EE-214", + PermissibleValue( + text="EE-214", + description="Region code for Häädemeeste.")) + setattr(cls, "EE-245", + PermissibleValue( + text="EE-245", + description="Region code for Jõelähtme.")) + setattr(cls, "EE-247", + PermissibleValue( + text="EE-247", + description="Region code for Jõgeva.")) + setattr(cls, "EE-251", + PermissibleValue( + text="EE-251", + description="Region code for Jõhvi.")) + setattr(cls, "EE-255", + PermissibleValue( + text="EE-255", + description="Region code for Järva.")) + setattr(cls, "EE-272", + PermissibleValue( + text="EE-272", + description="Region code for Kadrina.")) + setattr(cls, "EE-283", + PermissibleValue( + text="EE-283", + description="Region code for Kambja.")) + setattr(cls, "EE-284", + PermissibleValue( + text="EE-284", + description="Region code for Kanepi.")) + setattr(cls, "EE-291", + PermissibleValue( + text="EE-291", + description="Region code for Kastre.")) + setattr(cls, "EE-293", + PermissibleValue( + text="EE-293", + description="Region code for Kehtna.")) + setattr(cls, "EE-296", + PermissibleValue( + text="EE-296", + description="Region code for Keila.")) + setattr(cls, "EE-303", + PermissibleValue( + text="EE-303", + description="Region code for Kihnu.")) + setattr(cls, "EE-305", + PermissibleValue( + text="EE-305", + description="Region code for Kiili.")) + setattr(cls, "EE-317", + PermissibleValue( + text="EE-317", + description="Region code for Kohila.")) + setattr(cls, "EE-321", + PermissibleValue( + text="EE-321", + description="Region code for Kohtla-Järve.")) + setattr(cls, "EE-338", + PermissibleValue( + text="EE-338", + description="Region code for Kose.")) + setattr(cls, "EE-353", + PermissibleValue( + text="EE-353", + description="Region code for Kuusalu.")) + setattr(cls, "EE-37", + PermissibleValue( + text="EE-37", + description="Region code for Harjumaa.")) + setattr(cls, "EE-39", + PermissibleValue( + text="EE-39", + description="Region code for Hiiumaa.")) + setattr(cls, "EE-424", + PermissibleValue( + text="EE-424", + description="Region code for Loksa.")) + setattr(cls, "EE-430", + PermissibleValue( + text="EE-430", + description="Region code for Lääneranna.")) + setattr(cls, "EE-431", + PermissibleValue( + text="EE-431", + description="Region code for Lääne-Harju.")) + setattr(cls, "EE-432", + PermissibleValue( + text="EE-432", + description="Region code for Luunja.")) + setattr(cls, "EE-441", + PermissibleValue( + text="EE-441", + description="Region code for Lääne-Nigula.")) + setattr(cls, "EE-442", + PermissibleValue( + text="EE-442", + description="Region code for Lüganuse.")) + setattr(cls, "EE-446", + PermissibleValue( + text="EE-446", + description="Region code for Maardu.")) + setattr(cls, "EE-45", + PermissibleValue( + text="EE-45", + description="Region code for Ida-Virumaa.")) + setattr(cls, "EE-478", + PermissibleValue( + text="EE-478", + description="Region code for Muhu.")) + setattr(cls, "EE-480", + PermissibleValue( + text="EE-480", + description="Region code for Mulgi.")) + setattr(cls, "EE-486", + PermissibleValue( + text="EE-486", + description="Region code for Mustvee.")) + setattr(cls, "EE-50", + PermissibleValue( + text="EE-50", + description="Region code for Jõgevamaa.")) + setattr(cls, "EE-503", + PermissibleValue( + text="EE-503", + description="Region code for Märjamaa.")) + setattr(cls, "EE-511", + PermissibleValue( + text="EE-511", + description="Region code for Narva.")) + setattr(cls, "EE-514", + PermissibleValue( + text="EE-514", + description="Region code for Narva-Jõesuu.")) + setattr(cls, "EE-52", + PermissibleValue( + text="EE-52", + description="Region code for Järvamaa.")) + setattr(cls, "EE-528", + PermissibleValue( + text="EE-528", + description="Region code for Nõo.")) + setattr(cls, "EE-557", + PermissibleValue( + text="EE-557", + description="Region code for Otepää.")) + setattr(cls, "EE-56", + PermissibleValue( + text="EE-56", + description="Region code for Läänemaa.")) + setattr(cls, "EE-567", + PermissibleValue( + text="EE-567", + description="Region code for Paide.")) + setattr(cls, "EE-586", + PermissibleValue( + text="EE-586", + description="Region code for Peipsiääre.")) + setattr(cls, "EE-60", + PermissibleValue( + text="EE-60", + description="Region code for Lääne-Virumaa.")) + setattr(cls, "EE-615", + PermissibleValue( + text="EE-615", + description="Region code for Põhja-Sakala.")) + setattr(cls, "EE-618", + PermissibleValue( + text="EE-618", + description="Region code for Põltsamaa.")) + setattr(cls, "EE-622", + PermissibleValue( + text="EE-622", + description="Region code for Põlva.")) + setattr(cls, "EE-624", + PermissibleValue( + text="EE-624", + description="Region code for Pärnu.")) + setattr(cls, "EE-638", + PermissibleValue( + text="EE-638", + description="Region code for Põhja-Pärnumaa.")) + setattr(cls, "EE-64", + PermissibleValue( + text="EE-64", + description="Region code for Põlvamaa.")) + setattr(cls, "EE-651", + PermissibleValue( + text="EE-651", + description="Region code for Raasiku.")) + setattr(cls, "EE-653", + PermissibleValue( + text="EE-653", + description="Region code for Rae.")) + setattr(cls, "EE-661", + PermissibleValue( + text="EE-661", + description="Region code for Rakvere.")) + setattr(cls, "EE-663", + PermissibleValue( + text="EE-663", + description="Region code for Rakvere.")) + setattr(cls, "EE-668", + PermissibleValue( + text="EE-668", + description="Region code for Rapla.")) + setattr(cls, "EE-68", + PermissibleValue( + text="EE-68", + description="Region code for Pärnumaa.")) + setattr(cls, "EE-689", + PermissibleValue( + text="EE-689", + description="Region code for Ruhnu.")) + setattr(cls, "EE-698", + PermissibleValue( + text="EE-698", + description="Region code for Rõuge.")) + setattr(cls, "EE-708", + PermissibleValue( + text="EE-708", + description="Region code for Räpina.")) + setattr(cls, "EE-71", + PermissibleValue( + text="EE-71", + description="Region code for Raplamaa.")) + setattr(cls, "EE-712", + PermissibleValue( + text="EE-712", + description="Region code for Saarde.")) + setattr(cls, "EE-714", + PermissibleValue( + text="EE-714", + description="Region code for Saaremaa.")) + setattr(cls, "EE-719", + PermissibleValue( + text="EE-719", + description="Region code for Saku.")) + setattr(cls, "EE-726", + PermissibleValue( + text="EE-726", + description="Region code for Saue.")) + setattr(cls, "EE-732", + PermissibleValue( + text="EE-732", + description="Region code for Setomaa.")) + setattr(cls, "EE-735", + PermissibleValue( + text="EE-735", + description="Region code for Sillamäe.")) + setattr(cls, "EE-74", + PermissibleValue( + text="EE-74", + description="Region code for Saaremaa.")) + setattr(cls, "EE-784", + PermissibleValue( + text="EE-784", + description="Region code for Tallinn.")) + setattr(cls, "EE-79", + PermissibleValue( + text="EE-79", + description="Region code for Tartumaa.")) + setattr(cls, "EE-792", + PermissibleValue( + text="EE-792", + description="Region code for Tapa.")) + setattr(cls, "EE-793", + PermissibleValue( + text="EE-793", + description="Region code for Tartu.")) + setattr(cls, "EE-796", + PermissibleValue( + text="EE-796", + description="Region code for Tartu.")) + setattr(cls, "EE-803", + PermissibleValue( + text="EE-803", + description="Region code for Toila.")) + setattr(cls, "EE-809", + PermissibleValue( + text="EE-809", + description="Region code for Tori.")) + setattr(cls, "EE-81", + PermissibleValue( + text="EE-81", + description="Region code for Valgamaa.")) + setattr(cls, "EE-824", + PermissibleValue( + text="EE-824", + description="Region code for Tõrva.")) + setattr(cls, "EE-834", + PermissibleValue( + text="EE-834", + description="Region code for Türi.")) + setattr(cls, "EE-84", + PermissibleValue( + text="EE-84", + description="Region code for Viljandimaa.")) + setattr(cls, "EE-855", + PermissibleValue( + text="EE-855", + description="Region code for Valga.")) + setattr(cls, "EE-87", + PermissibleValue( + text="EE-87", + description="Region code for Võrumaa.")) + setattr(cls, "EE-890", + PermissibleValue( + text="EE-890", + description="Region code for Viimsi.")) + setattr(cls, "EE-897", + PermissibleValue( + text="EE-897", + description="Region code for Viljandi.")) + setattr(cls, "EE-899", + PermissibleValue( + text="EE-899", + description="Region code for Viljandi.")) + setattr(cls, "EE-901", + PermissibleValue( + text="EE-901", + description="Region code for Vinni.")) + setattr(cls, "EE-903", + PermissibleValue( + text="EE-903", + description="Region code for Viru-Nigula.")) + setattr(cls, "EE-907", + PermissibleValue( + text="EE-907", + description="Region code for Vormsi.")) + setattr(cls, "EE-917", + PermissibleValue( + text="EE-917", + description="Region code for Võru.")) + setattr(cls, "EE-919", + PermissibleValue( + text="EE-919", + description="Region code for Võru.")) + setattr(cls, "EE-928", + PermissibleValue( + text="EE-928", + description="Region code for Väike-Maarja.")) + setattr(cls, "EG-ALX", + PermissibleValue( + text="EG-ALX", + description="Region code for Al Iskandarīyah.")) + setattr(cls, "EG-ASN", + PermissibleValue( + text="EG-ASN", + description="Region code for Aswān.")) + setattr(cls, "EG-AST", + PermissibleValue( + text="EG-AST", + description="Region code for Asyūţ.")) + setattr(cls, "EG-BA", + PermissibleValue( + text="EG-BA", + description="Region code for Al Baḩr al Aḩmar.")) + setattr(cls, "EG-BH", + PermissibleValue( + text="EG-BH", + description="Region code for Al Buḩayrah.")) + setattr(cls, "EG-BNS", + PermissibleValue( + text="EG-BNS", + description="Region code for Banī Suwayf.")) + setattr(cls, "EG-C", + PermissibleValue( + text="EG-C", + description="Region code for Al Qāhirah.")) + setattr(cls, "EG-DK", + PermissibleValue( + text="EG-DK", + description="Region code for Ad Daqahlīyah.")) + setattr(cls, "EG-DT", + PermissibleValue( + text="EG-DT", + description="Region code for Dumyāţ.")) + setattr(cls, "EG-FYM", + PermissibleValue( + text="EG-FYM", + description="Region code for Al Fayyūm.")) + setattr(cls, "EG-GH", + PermissibleValue( + text="EG-GH", + description="Region code for Al Gharbīyah.")) + setattr(cls, "EG-GZ", + PermissibleValue( + text="EG-GZ", + description="Region code for Al Jīzah.")) + setattr(cls, "EG-IS", + PermissibleValue( + text="EG-IS", + description="Region code for Al Ismā'īlīyah.")) + setattr(cls, "EG-JS", + PermissibleValue( + text="EG-JS", + description="Region code for Janūb Sīnā'.")) + setattr(cls, "EG-KB", + PermissibleValue( + text="EG-KB", + description="Region code for Al Qalyūbīyah.")) + setattr(cls, "EG-KFS", + PermissibleValue( + text="EG-KFS", + description="Region code for Kafr ash Shaykh.")) + setattr(cls, "EG-KN", + PermissibleValue( + text="EG-KN", + description="Region code for Qinā.")) + setattr(cls, "EG-LX", + PermissibleValue( + text="EG-LX", + description="Region code for Al Uqşur.")) + setattr(cls, "EG-MN", + PermissibleValue( + text="EG-MN", + description="Region code for Al Minyā.")) + setattr(cls, "EG-MNF", + PermissibleValue( + text="EG-MNF", + description="Region code for Al Minūfīyah.")) + setattr(cls, "EG-MT", + PermissibleValue( + text="EG-MT", + description="Region code for Maţrūḩ.")) + setattr(cls, "EG-PTS", + PermissibleValue( + text="EG-PTS", + description="Region code for Būr Sa‘īd.")) + setattr(cls, "EG-SHG", + PermissibleValue( + text="EG-SHG", + description="Region code for Sūhāj.")) + setattr(cls, "EG-SHR", + PermissibleValue( + text="EG-SHR", + description="Region code for Ash Sharqīyah.")) + setattr(cls, "EG-SIN", + PermissibleValue( + text="EG-SIN", + description="Region code for Shamāl Sīnā'.")) + setattr(cls, "EG-SUZ", + PermissibleValue( + text="EG-SUZ", + description="Region code for As Suways.")) + setattr(cls, "EG-WAD", + PermissibleValue( + text="EG-WAD", + description="Region code for Al Wādī al Jadīd.")) + setattr(cls, "ER-AN", + PermissibleValue( + text="ER-AN", + description="Region code for Ansabā.")) + setattr(cls, "ER-DK", + PermissibleValue( + text="ER-DK", + description="Region code for Janūbī al Baḩrī al Aḩmar.")) + setattr(cls, "ER-DU", + PermissibleValue( + text="ER-DU", + description="Region code for Al Janūbī.")) + setattr(cls, "ER-GB", + PermissibleValue( + text="ER-GB", + description="Region code for Qāsh-Barkah.")) + setattr(cls, "ER-MA", + PermissibleValue( + text="ER-MA", + description="Region code for Al Awsaţ.")) + setattr(cls, "ER-SK", + PermissibleValue( + text="ER-SK", + description="Region code for Shimālī al Baḩrī al Aḩmar.")) + setattr(cls, "ES-A", + PermissibleValue( + text="ES-A", + description="Region code for Alacant*.")) + setattr(cls, "ES-AB", + PermissibleValue( + text="ES-AB", + description="Region code for Albacete.")) + setattr(cls, "ES-AL", + PermissibleValue( + text="ES-AL", + description="Region code for Almería.")) + setattr(cls, "ES-AN", + PermissibleValue( + text="ES-AN", + description="Region code for Andalucía.")) + setattr(cls, "ES-AR", + PermissibleValue( + text="ES-AR", + description="Region code for Aragón.")) + setattr(cls, "ES-AS", + PermissibleValue( + text="ES-AS", + description="Region code for Asturias, Principado de.")) + setattr(cls, "ES-AV", + PermissibleValue( + text="ES-AV", + description="Region code for Ávila.")) + setattr(cls, "ES-B", + PermissibleValue( + text="ES-B", + description="Region code for Barcelona [Barcelona].")) + setattr(cls, "ES-BA", + PermissibleValue( + text="ES-BA", + description="Region code for Badajoz.")) + setattr(cls, "ES-BI", + PermissibleValue( + text="ES-BI", + description="Region code for Bizkaia.")) + setattr(cls, "ES-BU", + PermissibleValue( + text="ES-BU", + description="Region code for Burgos.")) + setattr(cls, "ES-C", + PermissibleValue( + text="ES-C", + description="Region code for A Coruña [La Coruña].")) + setattr(cls, "ES-CA", + PermissibleValue( + text="ES-CA", + description="Region code for Cádiz.")) + setattr(cls, "ES-CB", + PermissibleValue( + text="ES-CB", + description="Region code for Cantabria.")) + setattr(cls, "ES-CC", + PermissibleValue( + text="ES-CC", + description="Region code for Cáceres.")) + setattr(cls, "ES-CE", + PermissibleValue( + text="ES-CE", + description="Region code for Ceuta.")) + setattr(cls, "ES-CL", + PermissibleValue( + text="ES-CL", + description="Region code for Castilla y León.")) + setattr(cls, "ES-CM", + PermissibleValue( + text="ES-CM", + description="Region code for Castilla-La Mancha.")) + setattr(cls, "ES-CN", + PermissibleValue( + text="ES-CN", + description="Region code for Canarias.")) + setattr(cls, "ES-CO", + PermissibleValue( + text="ES-CO", + description="Region code for Córdoba.")) + setattr(cls, "ES-CR", + PermissibleValue( + text="ES-CR", + description="Region code for Ciudad Real.")) + setattr(cls, "ES-CS", + PermissibleValue( + text="ES-CS", + description="Region code for Castelló*.")) + setattr(cls, "ES-CT", + PermissibleValue( + text="ES-CT", + description="Region code for Catalunya [Cataluña].")) + setattr(cls, "ES-CU", + PermissibleValue( + text="ES-CU", + description="Region code for Cuenca.")) + setattr(cls, "ES-EX", + PermissibleValue( + text="ES-EX", + description="Region code for Extremadura.")) + setattr(cls, "ES-GA", + PermissibleValue( + text="ES-GA", + description="Region code for Galicia [Galicia].")) + setattr(cls, "ES-GC", + PermissibleValue( + text="ES-GC", + description="Region code for Las Palmas.")) + setattr(cls, "ES-GI", + PermissibleValue( + text="ES-GI", + description="Region code for Girona [Gerona].")) + setattr(cls, "ES-GR", + PermissibleValue( + text="ES-GR", + description="Region code for Granada.")) + setattr(cls, "ES-GU", + PermissibleValue( + text="ES-GU", + description="Region code for Guadalajara.")) + setattr(cls, "ES-H", + PermissibleValue( + text="ES-H", + description="Region code for Huelva.")) + setattr(cls, "ES-HU", + PermissibleValue( + text="ES-HU", + description="Region code for Huesca.")) + setattr(cls, "ES-IB", + PermissibleValue( + text="ES-IB", + description="Region code for Illes Balears [Islas Baleares].")) + setattr(cls, "ES-J", + PermissibleValue( + text="ES-J", + description="Region code for Jaén.")) + setattr(cls, "ES-L", + PermissibleValue( + text="ES-L", + description="Region code for Lleida [Lérida].")) + setattr(cls, "ES-LE", + PermissibleValue( + text="ES-LE", + description="Region code for León.")) + setattr(cls, "ES-LO", + PermissibleValue( + text="ES-LO", + description="Region code for La Rioja.")) + setattr(cls, "ES-LU", + PermissibleValue( + text="ES-LU", + description="Region code for Lugo [Lugo].")) + setattr(cls, "ES-M", + PermissibleValue( + text="ES-M", + description="Region code for Madrid.")) + setattr(cls, "ES-MA", + PermissibleValue( + text="ES-MA", + description="Region code for Málaga.")) + setattr(cls, "ES-MC", + PermissibleValue( + text="ES-MC", + description="Region code for Murcia, Región de.")) + setattr(cls, "ES-MD", + PermissibleValue( + text="ES-MD", + description="Region code for Madrid, Comunidad de.")) + setattr(cls, "ES-ML", + PermissibleValue( + text="ES-ML", + description="Region code for Melilla.")) + setattr(cls, "ES-MU", + PermissibleValue( + text="ES-MU", + description="Region code for Murcia.")) + setattr(cls, "ES-NA", + PermissibleValue( + text="ES-NA", + description="Region code for Nafarroa*.")) + setattr(cls, "ES-NC", + PermissibleValue( + text="ES-NC", + description="Region code for Nafarroako Foru Komunitatea*.")) + setattr(cls, "ES-O", + PermissibleValue( + text="ES-O", + description="Region code for Asturias.")) + setattr(cls, "ES-OR", + PermissibleValue( + text="ES-OR", + description="Region code for Ourense [Orense].")) + setattr(cls, "ES-P", + PermissibleValue( + text="ES-P", + description="Region code for Palencia.")) + setattr(cls, "ES-PM", + PermissibleValue( + text="ES-PM", + description="Region code for Illes Balears [Islas Baleares].")) + setattr(cls, "ES-PO", + PermissibleValue( + text="ES-PO", + description="Region code for Pontevedra [Pontevedra].")) + setattr(cls, "ES-PV", + PermissibleValue( + text="ES-PV", + description="Region code for Euskal Herria.")) + setattr(cls, "ES-RI", + PermissibleValue( + text="ES-RI", + description="Region code for La Rioja.")) + setattr(cls, "ES-S", + PermissibleValue( + text="ES-S", + description="Region code for Cantabria.")) + setattr(cls, "ES-SA", + PermissibleValue( + text="ES-SA", + description="Region code for Salamanca.")) + setattr(cls, "ES-SE", + PermissibleValue( + text="ES-SE", + description="Region code for Sevilla.")) + setattr(cls, "ES-SG", + PermissibleValue( + text="ES-SG", + description="Region code for Segovia.")) + setattr(cls, "ES-SO", + PermissibleValue( + text="ES-SO", + description="Region code for Soria.")) + setattr(cls, "ES-SS", + PermissibleValue( + text="ES-SS", + description="Region code for Gipuzkoa.")) + setattr(cls, "ES-T", + PermissibleValue( + text="ES-T", + description="Region code for Tarragona [Tarragona].")) + setattr(cls, "ES-TE", + PermissibleValue( + text="ES-TE", + description="Region code for Teruel.")) + setattr(cls, "ES-TF", + PermissibleValue( + text="ES-TF", + description="Region code for Santa Cruz de Tenerife.")) + setattr(cls, "ES-TO", + PermissibleValue( + text="ES-TO", + description="Region code for Toledo.")) + setattr(cls, "ES-V", + PermissibleValue( + text="ES-V", + description="Region code for València*.")) + setattr(cls, "ES-VA", + PermissibleValue( + text="ES-VA", + description="Region code for Valladolid.")) + setattr(cls, "ES-VC", + PermissibleValue( + text="ES-VC", + description="Region code for Valenciana, Comunitat*.")) + setattr(cls, "ES-VI", + PermissibleValue( + text="ES-VI", + description="Region code for Araba*.")) + setattr(cls, "ES-Z", + PermissibleValue( + text="ES-Z", + description="Region code for Zaragoza.")) + setattr(cls, "ES-ZA", + PermissibleValue( + text="ES-ZA", + description="Region code for Zamora.")) + setattr(cls, "ET-AA", + PermissibleValue( + text="ET-AA", + description="Region code for Ādīs Ābeba.")) + setattr(cls, "ET-AF", + PermissibleValue( + text="ET-AF", + description="Region code for Āfar.")) + setattr(cls, "ET-AM", + PermissibleValue( + text="ET-AM", + description="Region code for Āmara.")) + setattr(cls, "ET-BE", + PermissibleValue( + text="ET-BE", + description="Region code for Bīnshangul Gumuz.")) + setattr(cls, "ET-DD", + PermissibleValue( + text="ET-DD", + description="Region code for Dirē Dawa.")) + setattr(cls, "ET-GA", + PermissibleValue( + text="ET-GA", + description="Region code for Gambēla Hizboch.")) + setattr(cls, "ET-HA", + PermissibleValue( + text="ET-HA", + description="Region code for Hārerī Hizb.")) + setattr(cls, "ET-OR", + PermissibleValue( + text="ET-OR", + description="Region code for Oromīya.")) + setattr(cls, "ET-SI", + PermissibleValue( + text="ET-SI", + description="Region code for Sīdama.")) + setattr(cls, "ET-SN", + PermissibleValue( + text="ET-SN", + description="Region code for YeDebub Bihēroch Bihēreseboch na Hizboch.")) + setattr(cls, "ET-SO", + PermissibleValue( + text="ET-SO", + description="Region code for Sumalē.")) + setattr(cls, "ET-SW", + PermissibleValue( + text="ET-SW", + description="Region code for YeDebub M‘irab Ītyop’iya Hizboch.")) + setattr(cls, "ET-TI", + PermissibleValue( + text="ET-TI", + description="Region code for Tigray.")) + setattr(cls, "FI-01", + PermissibleValue( + text="FI-01", + description="Region code for Ahvenanmaan maakunta.")) + setattr(cls, "FI-02", + PermissibleValue( + text="FI-02", + description="Region code for Etelä-Karjala.")) + setattr(cls, "FI-03", + PermissibleValue( + text="FI-03", + description="Region code for Etelä-Pohjanmaa.")) + setattr(cls, "FI-04", + PermissibleValue( + text="FI-04", + description="Region code for Etelä-Savo.")) + setattr(cls, "FI-05", + PermissibleValue( + text="FI-05", + description="Region code for Kainuu.")) + setattr(cls, "FI-06", + PermissibleValue( + text="FI-06", + description="Region code for Kanta-Häme.")) + setattr(cls, "FI-07", + PermissibleValue( + text="FI-07", + description="Region code for Keski-Pohjanmaa.")) + setattr(cls, "FI-08", + PermissibleValue( + text="FI-08", + description="Region code for Keski-Suomi.")) + setattr(cls, "FI-09", + PermissibleValue( + text="FI-09", + description="Region code for Kymenlaakso.")) + setattr(cls, "FI-10", + PermissibleValue( + text="FI-10", + description="Region code for Lappi.")) + setattr(cls, "FI-11", + PermissibleValue( + text="FI-11", + description="Region code for Pirkanmaa.")) + setattr(cls, "FI-12", + PermissibleValue( + text="FI-12", + description="Region code for Pohjanmaa.")) + setattr(cls, "FI-13", + PermissibleValue( + text="FI-13", + description="Region code for Pohjois-Karjala.")) + setattr(cls, "FI-14", + PermissibleValue( + text="FI-14", + description="Region code for Pohjois-Pohjanmaa.")) + setattr(cls, "FI-15", + PermissibleValue( + text="FI-15", + description="Region code for Pohjois-Savo.")) + setattr(cls, "FI-16", + PermissibleValue( + text="FI-16", + description="Region code for Päijät-Häme.")) + setattr(cls, "FI-17", + PermissibleValue( + text="FI-17", + description="Region code for Satakunta.")) + setattr(cls, "FI-18", + PermissibleValue( + text="FI-18", + description="Region code for Uusimaa.")) + setattr(cls, "FI-19", + PermissibleValue( + text="FI-19", + description="Region code for Varsinais-Suomi.")) + setattr(cls, "FJ-01", + PermissibleValue( + text="FJ-01", + description="Region code for Ba.")) + setattr(cls, "FJ-02", + PermissibleValue( + text="FJ-02", + description="Region code for Bua.")) + setattr(cls, "FJ-03", + PermissibleValue( + text="FJ-03", + description="Region code for Cakaudrove.")) + setattr(cls, "FJ-04", + PermissibleValue( + text="FJ-04", + description="Region code for Kadavu.")) + setattr(cls, "FJ-05", + PermissibleValue( + text="FJ-05", + description="Region code for Lau.")) + setattr(cls, "FJ-06", + PermissibleValue( + text="FJ-06", + description="Region code for Lomaiviti.")) + setattr(cls, "FJ-07", + PermissibleValue( + text="FJ-07", + description="Region code for Macuata.")) + setattr(cls, "FJ-08", + PermissibleValue( + text="FJ-08", + description="Region code for Nadroga and Navosa.")) + setattr(cls, "FJ-09", + PermissibleValue( + text="FJ-09", + description="Region code for Naitasiri.")) + setattr(cls, "FJ-10", + PermissibleValue( + text="FJ-10", + description="Region code for Namosi.")) + setattr(cls, "FJ-11", + PermissibleValue( + text="FJ-11", + description="Region code for Ra.")) + setattr(cls, "FJ-12", + PermissibleValue( + text="FJ-12", + description="Region code for Rewa.")) + setattr(cls, "FJ-13", + PermissibleValue( + text="FJ-13", + description="Region code for Serua.")) + setattr(cls, "FJ-14", + PermissibleValue( + text="FJ-14", + description="Region code for Tailevu.")) + setattr(cls, "FJ-C", + PermissibleValue( + text="FJ-C", + description="Region code for Central.")) + setattr(cls, "FJ-E", + PermissibleValue( + text="FJ-E", + description="Region code for Eastern.")) + setattr(cls, "FJ-N", + PermissibleValue( + text="FJ-N", + description="Region code for Northern.")) + setattr(cls, "FJ-R", + PermissibleValue( + text="FJ-R", + description="Region code for Rotuma.")) + setattr(cls, "FJ-W", + PermissibleValue( + text="FJ-W", + description="Region code for Western.")) + setattr(cls, "FM-KSA", + PermissibleValue( + text="FM-KSA", + description="Region code for Kosrae.")) + setattr(cls, "FM-PNI", + PermissibleValue( + text="FM-PNI", + description="Region code for Pohnpei.")) + setattr(cls, "FM-TRK", + PermissibleValue( + text="FM-TRK", + description="Region code for Chuuk.")) + setattr(cls, "FM-YAP", + PermissibleValue( + text="FM-YAP", + description="Region code for Yap.")) + setattr(cls, "FR-01", + PermissibleValue( + text="FR-01", + description="Region code for Ain.")) + setattr(cls, "FR-02", + PermissibleValue( + text="FR-02", + description="Region code for Aisne.")) + setattr(cls, "FR-03", + PermissibleValue( + text="FR-03", + description="Region code for Allier.")) + setattr(cls, "FR-04", + PermissibleValue( + text="FR-04", + description="Region code for Alpes-de-Haute-Provence.")) + setattr(cls, "FR-05", + PermissibleValue( + text="FR-05", + description="Region code for Hautes-Alpes.")) + setattr(cls, "FR-06", + PermissibleValue( + text="FR-06", + description="Region code for Alpes-Maritimes.")) + setattr(cls, "FR-07", + PermissibleValue( + text="FR-07", + description="Region code for Ardèche.")) + setattr(cls, "FR-08", + PermissibleValue( + text="FR-08", + description="Region code for Ardennes.")) + setattr(cls, "FR-09", + PermissibleValue( + text="FR-09", + description="Region code for Ariège.")) + setattr(cls, "FR-10", + PermissibleValue( + text="FR-10", + description="Region code for Aube.")) + setattr(cls, "FR-11", + PermissibleValue( + text="FR-11", + description="Region code for Aude.")) + setattr(cls, "FR-12", + PermissibleValue( + text="FR-12", + description="Region code for Aveyron.")) + setattr(cls, "FR-13", + PermissibleValue( + text="FR-13", + description="Region code for Bouches-du-Rhône.")) + setattr(cls, "FR-14", + PermissibleValue( + text="FR-14", + description="Region code for Calvados.")) + setattr(cls, "FR-15", + PermissibleValue( + text="FR-15", + description="Region code for Cantal.")) + setattr(cls, "FR-16", + PermissibleValue( + text="FR-16", + description="Region code for Charente.")) + setattr(cls, "FR-17", + PermissibleValue( + text="FR-17", + description="Region code for Charente-Maritime.")) + setattr(cls, "FR-18", + PermissibleValue( + text="FR-18", + description="Region code for Cher.")) + setattr(cls, "FR-19", + PermissibleValue( + text="FR-19", + description="Region code for Corrèze.")) + setattr(cls, "FR-20R", + PermissibleValue( + text="FR-20R", + description="Region code for Corse.")) + setattr(cls, "FR-21", + PermissibleValue( + text="FR-21", + description="Region code for Côte-d'Or.")) + setattr(cls, "FR-22", + PermissibleValue( + text="FR-22", + description="Region code for Côtes-d'Armor.")) + setattr(cls, "FR-23", + PermissibleValue( + text="FR-23", + description="Region code for Creuse.")) + setattr(cls, "FR-24", + PermissibleValue( + text="FR-24", + description="Region code for Dordogne.")) + setattr(cls, "FR-25", + PermissibleValue( + text="FR-25", + description="Region code for Doubs.")) + setattr(cls, "FR-26", + PermissibleValue( + text="FR-26", + description="Region code for Drôme.")) + setattr(cls, "FR-27", + PermissibleValue( + text="FR-27", + description="Region code for Eure.")) + setattr(cls, "FR-28", + PermissibleValue( + text="FR-28", + description="Region code for Eure-et-Loir.")) + setattr(cls, "FR-29", + PermissibleValue( + text="FR-29", + description="Region code for Finistère.")) + setattr(cls, "FR-2A", + PermissibleValue( + text="FR-2A", + description="Region code for Corse-du-Sud.")) + setattr(cls, "FR-2B", + PermissibleValue( + text="FR-2B", + description="Region code for Haute-Corse.")) + setattr(cls, "FR-30", + PermissibleValue( + text="FR-30", + description="Region code for Gard.")) + setattr(cls, "FR-31", + PermissibleValue( + text="FR-31", + description="Region code for Haute-Garonne.")) + setattr(cls, "FR-32", + PermissibleValue( + text="FR-32", + description="Region code for Gers.")) + setattr(cls, "FR-33", + PermissibleValue( + text="FR-33", + description="Region code for Gironde.")) + setattr(cls, "FR-34", + PermissibleValue( + text="FR-34", + description="Region code for Hérault.")) + setattr(cls, "FR-35", + PermissibleValue( + text="FR-35", + description="Region code for Ille-et-Vilaine.")) + setattr(cls, "FR-36", + PermissibleValue( + text="FR-36", + description="Region code for Indre.")) + setattr(cls, "FR-37", + PermissibleValue( + text="FR-37", + description="Region code for Indre-et-Loire.")) + setattr(cls, "FR-38", + PermissibleValue( + text="FR-38", + description="Region code for Isère.")) + setattr(cls, "FR-39", + PermissibleValue( + text="FR-39", + description="Region code for Jura.")) + setattr(cls, "FR-40", + PermissibleValue( + text="FR-40", + description="Region code for Landes.")) + setattr(cls, "FR-41", + PermissibleValue( + text="FR-41", + description="Region code for Loir-et-Cher.")) + setattr(cls, "FR-42", + PermissibleValue( + text="FR-42", + description="Region code for Loire.")) + setattr(cls, "FR-43", + PermissibleValue( + text="FR-43", + description="Region code for Haute-Loire.")) + setattr(cls, "FR-44", + PermissibleValue( + text="FR-44", + description="Region code for Loire-Atlantique.")) + setattr(cls, "FR-45", + PermissibleValue( + text="FR-45", + description="Region code for Loiret.")) + setattr(cls, "FR-46", + PermissibleValue( + text="FR-46", + description="Region code for Lot.")) + setattr(cls, "FR-47", + PermissibleValue( + text="FR-47", + description="Region code for Lot-et-Garonne.")) + setattr(cls, "FR-48", + PermissibleValue( + text="FR-48", + description="Region code for Lozère.")) + setattr(cls, "FR-49", + PermissibleValue( + text="FR-49", + description="Region code for Maine-et-Loire.")) + setattr(cls, "FR-50", + PermissibleValue( + text="FR-50", + description="Region code for Manche.")) + setattr(cls, "FR-51", + PermissibleValue( + text="FR-51", + description="Region code for Marne.")) + setattr(cls, "FR-52", + PermissibleValue( + text="FR-52", + description="Region code for Haute-Marne.")) + setattr(cls, "FR-53", + PermissibleValue( + text="FR-53", + description="Region code for Mayenne.")) + setattr(cls, "FR-54", + PermissibleValue( + text="FR-54", + description="Region code for Meurthe-et-Moselle.")) + setattr(cls, "FR-55", + PermissibleValue( + text="FR-55", + description="Region code for Meuse.")) + setattr(cls, "FR-56", + PermissibleValue( + text="FR-56", + description="Region code for Morbihan.")) + setattr(cls, "FR-57", + PermissibleValue( + text="FR-57", + description="Region code for Moselle.")) + setattr(cls, "FR-58", + PermissibleValue( + text="FR-58", + description="Region code for Nièvre.")) + setattr(cls, "FR-59", + PermissibleValue( + text="FR-59", + description="Region code for Nord.")) + setattr(cls, "FR-60", + PermissibleValue( + text="FR-60", + description="Region code for Oise.")) + setattr(cls, "FR-61", + PermissibleValue( + text="FR-61", + description="Region code for Orne.")) + setattr(cls, "FR-62", + PermissibleValue( + text="FR-62", + description="Region code for Pas-de-Calais.")) + setattr(cls, "FR-63", + PermissibleValue( + text="FR-63", + description="Region code for Puy-de-Dôme.")) + setattr(cls, "FR-64", + PermissibleValue( + text="FR-64", + description="Region code for Pyrénées-Atlantiques.")) + setattr(cls, "FR-65", + PermissibleValue( + text="FR-65", + description="Region code for Hautes-Pyrénées.")) + setattr(cls, "FR-66", + PermissibleValue( + text="FR-66", + description="Region code for Pyrénées-Orientales.")) + setattr(cls, "FR-67", + PermissibleValue( + text="FR-67", + description="Region code for Bas-Rhin.")) + setattr(cls, "FR-68", + PermissibleValue( + text="FR-68", + description="Region code for Haut-Rhin.")) + setattr(cls, "FR-69", + PermissibleValue( + text="FR-69", + description="Region code for Rhône.")) + setattr(cls, "FR-69M", + PermissibleValue( + text="FR-69M", + description="Region code for Métropole de Lyon.")) + setattr(cls, "FR-6AE", + PermissibleValue( + text="FR-6AE", + description="Region code for Alsace.")) + setattr(cls, "FR-70", + PermissibleValue( + text="FR-70", + description="Region code for Haute-Saône.")) + setattr(cls, "FR-71", + PermissibleValue( + text="FR-71", + description="Region code for Saône-et-Loire.")) + setattr(cls, "FR-72", + PermissibleValue( + text="FR-72", + description="Region code for Sarthe.")) + setattr(cls, "FR-73", + PermissibleValue( + text="FR-73", + description="Region code for Savoie.")) + setattr(cls, "FR-74", + PermissibleValue( + text="FR-74", + description="Region code for Haute-Savoie.")) + setattr(cls, "FR-75C", + PermissibleValue( + text="FR-75C", + description="Region code for Paris.")) + setattr(cls, "FR-76", + PermissibleValue( + text="FR-76", + description="Region code for Seine-Maritime.")) + setattr(cls, "FR-77", + PermissibleValue( + text="FR-77", + description="Region code for Seine-et-Marne.")) + setattr(cls, "FR-78", + PermissibleValue( + text="FR-78", + description="Region code for Yvelines.")) + setattr(cls, "FR-79", + PermissibleValue( + text="FR-79", + description="Region code for Deux-Sèvres.")) + setattr(cls, "FR-80", + PermissibleValue( + text="FR-80", + description="Region code for Somme.")) + setattr(cls, "FR-81", + PermissibleValue( + text="FR-81", + description="Region code for Tarn.")) + setattr(cls, "FR-82", + PermissibleValue( + text="FR-82", + description="Region code for Tarn-et-Garonne.")) + setattr(cls, "FR-83", + PermissibleValue( + text="FR-83", + description="Region code for Var.")) + setattr(cls, "FR-84", + PermissibleValue( + text="FR-84", + description="Region code for Vaucluse.")) + setattr(cls, "FR-85", + PermissibleValue( + text="FR-85", + description="Region code for Vendée.")) + setattr(cls, "FR-86", + PermissibleValue( + text="FR-86", + description="Region code for Vienne.")) + setattr(cls, "FR-87", + PermissibleValue( + text="FR-87", + description="Region code for Haute-Vienne.")) + setattr(cls, "FR-88", + PermissibleValue( + text="FR-88", + description="Region code for Vosges.")) + setattr(cls, "FR-89", + PermissibleValue( + text="FR-89", + description="Region code for Yonne.")) + setattr(cls, "FR-90", + PermissibleValue( + text="FR-90", + description="Region code for Territoire de Belfort.")) + setattr(cls, "FR-91", + PermissibleValue( + text="FR-91", + description="Region code for Essonne.")) + setattr(cls, "FR-92", + PermissibleValue( + text="FR-92", + description="Region code for Hauts-de-Seine.")) + setattr(cls, "FR-93", + PermissibleValue( + text="FR-93", + description="Region code for Seine-Saint-Denis.")) + setattr(cls, "FR-94", + PermissibleValue( + text="FR-94", + description="Region code for Val-de-Marne.")) + setattr(cls, "FR-95", + PermissibleValue( + text="FR-95", + description="Region code for Val-d'Oise.")) + setattr(cls, "FR-971", + PermissibleValue( + text="FR-971", + description="Region code for Guadeloupe (see also separate country code entry under GP).")) + setattr(cls, "FR-972", + PermissibleValue( + text="FR-972", + description="Region code for Martinique (see also separate country code entry under MQ).")) + setattr(cls, "FR-973", + PermissibleValue( + text="FR-973", + description="Region code for Guyane (française) (see also separate country code entry under GF).")) + setattr(cls, "FR-974", + PermissibleValue( + text="FR-974", + description="Region code for La Réunion (see also separate country code entry under RE).")) + setattr(cls, "FR-976", + PermissibleValue( + text="FR-976", + description="Region code for Mayotte (see also separate country code entry under YT).")) + setattr(cls, "FR-ARA", + PermissibleValue( + text="FR-ARA", + description="Region code for Auvergne-Rhône-Alpes.")) + setattr(cls, "FR-BFC", + PermissibleValue( + text="FR-BFC", + description="Region code for Bourgogne-Franche-Comté.")) + setattr(cls, "FR-BL", + PermissibleValue( + text="FR-BL", + description="Region code for Saint-Barthélemy (see also separate country code entry under BL).")) + setattr(cls, "FR-BRE", + PermissibleValue( + text="FR-BRE", + description="Region code for Bretagne.")) + setattr(cls, "FR-CP", + PermissibleValue( + text="FR-CP", + description="Region code for Clipperton.")) + setattr(cls, "FR-CVL", + PermissibleValue( + text="FR-CVL", + description="Region code for Centre-Val de Loire.")) + setattr(cls, "FR-GES", + PermissibleValue( + text="FR-GES", + description="Region code for Grand-Est.")) + setattr(cls, "FR-HDF", + PermissibleValue( + text="FR-HDF", + description="Region code for Hauts-de-France.")) + setattr(cls, "FR-IDF", + PermissibleValue( + text="FR-IDF", + description="Region code for Île-de-France.")) + setattr(cls, "FR-MF", + PermissibleValue( + text="FR-MF", + description="Region code for Saint-Martin (see also separate country code entry under MF).")) + setattr(cls, "FR-NAQ", + PermissibleValue( + text="FR-NAQ", + description="Region code for Nouvelle-Aquitaine.")) + setattr(cls, "FR-NC", + PermissibleValue( + text="FR-NC", + description="Region code for Nouvelle-Calédonie (see also separate country code entry under NC).")) + setattr(cls, "FR-NOR", + PermissibleValue( + text="FR-NOR", + description="Region code for Normandie.")) + setattr(cls, "FR-OCC", + PermissibleValue( + text="FR-OCC", + description="Region code for Occitanie.")) + setattr(cls, "FR-PAC", + PermissibleValue( + text="FR-PAC", + description="Region code for Provence-Alpes-Côte-d’Azur.")) + setattr(cls, "FR-PDL", + PermissibleValue( + text="FR-PDL", + description="Region code for Pays-de-la-Loire.")) + setattr(cls, "FR-PF", + PermissibleValue( + text="FR-PF", + description="Region code for Polynésie française (see also separate country code entry under PF).")) + setattr(cls, "FR-PM", + PermissibleValue( + text="FR-PM", + description="""Region code for Saint-Pierre-et-Miquelon (see also separate country code entry under PM).""")) + setattr(cls, "FR-TF", + PermissibleValue( + text="FR-TF", + description="""Region code for Terres australes françaises (see also separate country code entry under TF).""")) + setattr(cls, "FR-WF", + PermissibleValue( + text="FR-WF", + description="Region code for Wallis-et-Futuna (see also separate country code entry under WF).")) + setattr(cls, "GA-1", + PermissibleValue( + text="GA-1", + description="Region code for Estuaire.")) + setattr(cls, "GA-2", + PermissibleValue( + text="GA-2", + description="Region code for Haut-Ogooué.")) + setattr(cls, "GA-3", + PermissibleValue( + text="GA-3", + description="Region code for Moyen-Ogooué.")) + setattr(cls, "GA-4", + PermissibleValue( + text="GA-4", + description="Region code for Ngounié.")) + setattr(cls, "GA-5", + PermissibleValue( + text="GA-5", + description="Region code for Nyanga.")) + setattr(cls, "GA-6", + PermissibleValue( + text="GA-6", + description="Region code for Ogooué-Ivindo.")) + setattr(cls, "GA-7", + PermissibleValue( + text="GA-7", + description="Region code for Ogooué-Lolo.")) + setattr(cls, "GA-8", + PermissibleValue( + text="GA-8", + description="Region code for Ogooué-Maritime.")) + setattr(cls, "GA-9", + PermissibleValue( + text="GA-9", + description="Region code for Woleu-Ntem.")) + setattr(cls, "GB-ABC", + PermissibleValue( + text="GB-ABC", + description="Region code for Armagh City, Banbridge and Craigavon.")) + setattr(cls, "GB-ABD", + PermissibleValue( + text="GB-ABD", + description="Region code for Aberdeenshire.")) + setattr(cls, "GB-ABE", + PermissibleValue( + text="GB-ABE", + description="Region code for Aberdeen City.")) + setattr(cls, "GB-AGB", + PermissibleValue( + text="GB-AGB", + description="Region code for Argyll and Bute.")) + setattr(cls, "GB-AGY", + PermissibleValue( + text="GB-AGY", + description="Region code for Isle of Anglesey [Sir Ynys Môn GB-YNM].")) + setattr(cls, "GB-AND", + PermissibleValue( + text="GB-AND", + description="Region code for Ards and North Down.")) + setattr(cls, "GB-ANN", + PermissibleValue( + text="GB-ANN", + description="Region code for Antrim and Newtownabbey.")) + setattr(cls, "GB-ANS", + PermissibleValue( + text="GB-ANS", + description="Region code for Angus.")) + setattr(cls, "GB-BAS", + PermissibleValue( + text="GB-BAS", + description="Region code for Bath and North East Somerset.")) + setattr(cls, "GB-BBD", + PermissibleValue( + text="GB-BBD", + description="Region code for Blackburn with Darwen.")) + setattr(cls, "GB-BCP", + PermissibleValue( + text="GB-BCP", + description="Region code for Bournemouth, Christchurch and Poole.")) + setattr(cls, "GB-BDF", + PermissibleValue( + text="GB-BDF", + description="Region code for Bedford.")) + setattr(cls, "GB-BDG", + PermissibleValue( + text="GB-BDG", + description="Region code for Barking and Dagenham.")) + setattr(cls, "GB-BEN", + PermissibleValue( + text="GB-BEN", + description="Region code for Brent.")) + setattr(cls, "GB-BEX", + PermissibleValue( + text="GB-BEX", + description="Region code for Bexley.")) + setattr(cls, "GB-BFS", + PermissibleValue( + text="GB-BFS", + description="Region code for Belfast City.")) + setattr(cls, "GB-BGE", + PermissibleValue( + text="GB-BGE", + description="Region code for Bridgend [Pen-y-bont ar Ogwr GB-POG].")) + setattr(cls, "GB-BGW", + PermissibleValue( + text="GB-BGW", + description="Region code for Blaenau Gwent.")) + setattr(cls, "GB-BIR", + PermissibleValue( + text="GB-BIR", + description="Region code for Birmingham.")) + setattr(cls, "GB-BKM", + PermissibleValue( + text="GB-BKM", + description="Region code for Buckinghamshire.")) + setattr(cls, "GB-BNE", + PermissibleValue( + text="GB-BNE", + description="Region code for Barnet.")) + setattr(cls, "GB-BNH", + PermissibleValue( + text="GB-BNH", + description="Region code for Brighton and Hove.")) + setattr(cls, "GB-BNS", + PermissibleValue( + text="GB-BNS", + description="Region code for Barnsley.")) + setattr(cls, "GB-BOL", + PermissibleValue( + text="GB-BOL", + description="Region code for Bolton.")) + setattr(cls, "GB-BPL", + PermissibleValue( + text="GB-BPL", + description="Region code for Blackpool.")) + setattr(cls, "GB-BRC", + PermissibleValue( + text="GB-BRC", + description="Region code for Bracknell Forest.")) + setattr(cls, "GB-BRD", + PermissibleValue( + text="GB-BRD", + description="Region code for Bradford.")) + setattr(cls, "GB-BRY", + PermissibleValue( + text="GB-BRY", + description="Region code for Bromley.")) + setattr(cls, "GB-BST", + PermissibleValue( + text="GB-BST", + description="Region code for Bristol, City of.")) + setattr(cls, "GB-BUR", + PermissibleValue( + text="GB-BUR", + description="Region code for Bury.")) + setattr(cls, "GB-CAM", + PermissibleValue( + text="GB-CAM", + description="Region code for Cambridgeshire.")) + setattr(cls, "GB-CAY", + PermissibleValue( + text="GB-CAY", + description="Region code for Caerphilly [Caerffili GB-CAF].")) + setattr(cls, "GB-CBF", + PermissibleValue( + text="GB-CBF", + description="Region code for Central Bedfordshire.")) + setattr(cls, "GB-CCG", + PermissibleValue( + text="GB-CCG", + description="Region code for Causeway Coast and Glens.")) + setattr(cls, "GB-CGN", + PermissibleValue( + text="GB-CGN", + description="Region code for Ceredigion [Sir Ceredigion].")) + setattr(cls, "GB-CHE", + PermissibleValue( + text="GB-CHE", + description="Region code for Cheshire East.")) + setattr(cls, "GB-CHW", + PermissibleValue( + text="GB-CHW", + description="Region code for Cheshire West and Chester.")) + setattr(cls, "GB-CLD", + PermissibleValue( + text="GB-CLD", + description="Region code for Calderdale.")) + setattr(cls, "GB-CLK", + PermissibleValue( + text="GB-CLK", + description="Region code for Clackmannanshire.")) + setattr(cls, "GB-CMA", + PermissibleValue( + text="GB-CMA", + description="Region code for Cumbria.")) + setattr(cls, "GB-CMD", + PermissibleValue( + text="GB-CMD", + description="Region code for Camden.")) + setattr(cls, "GB-CMN", + PermissibleValue( + text="GB-CMN", + description="Region code for Carmarthenshire [Sir Gaerfyrddin GB-GFY].")) + setattr(cls, "GB-CON", + PermissibleValue( + text="GB-CON", + description="Region code for Cornwall.")) + setattr(cls, "GB-COV", + PermissibleValue( + text="GB-COV", + description="Region code for Coventry.")) + setattr(cls, "GB-CRF", + PermissibleValue( + text="GB-CRF", + description="Region code for Cardiff [Caerdydd GB-CRD].")) + setattr(cls, "GB-CRY", + PermissibleValue( + text="GB-CRY", + description="Region code for Croydon.")) + setattr(cls, "GB-CWY", + PermissibleValue( + text="GB-CWY", + description="Region code for Conwy.")) + setattr(cls, "GB-DAL", + PermissibleValue( + text="GB-DAL", + description="Region code for Darlington.")) + setattr(cls, "GB-DBY", + PermissibleValue( + text="GB-DBY", + description="Region code for Derbyshire.")) + setattr(cls, "GB-DEN", + PermissibleValue( + text="GB-DEN", + description="Region code for Denbighshire [Sir Ddinbych GB-DDB].")) + setattr(cls, "GB-DER", + PermissibleValue( + text="GB-DER", + description="Region code for Derby.")) + setattr(cls, "GB-DEV", + PermissibleValue( + text="GB-DEV", + description="Region code for Devon.")) + setattr(cls, "GB-DGY", + PermissibleValue( + text="GB-DGY", + description="Region code for Dumfries and Galloway.")) + setattr(cls, "GB-DNC", + PermissibleValue( + text="GB-DNC", + description="Region code for Doncaster.")) + setattr(cls, "GB-DND", + PermissibleValue( + text="GB-DND", + description="Region code for Dundee City.")) + setattr(cls, "GB-DOR", + PermissibleValue( + text="GB-DOR", + description="Region code for Dorset.")) + setattr(cls, "GB-DRS", + PermissibleValue( + text="GB-DRS", + description="Region code for Derry and Strabane.")) + setattr(cls, "GB-DUD", + PermissibleValue( + text="GB-DUD", + description="Region code for Dudley.")) + setattr(cls, "GB-DUR", + PermissibleValue( + text="GB-DUR", + description="Region code for Durham, County.")) + setattr(cls, "GB-EAL", + PermissibleValue( + text="GB-EAL", + description="Region code for Ealing.")) + setattr(cls, "GB-EAY", + PermissibleValue( + text="GB-EAY", + description="Region code for East Ayrshire.")) + setattr(cls, "GB-EDH", + PermissibleValue( + text="GB-EDH", + description="Region code for Edinburgh, City of.")) + setattr(cls, "GB-EDU", + PermissibleValue( + text="GB-EDU", + description="Region code for East Dunbartonshire.")) + setattr(cls, "GB-ELN", + PermissibleValue( + text="GB-ELN", + description="Region code for East Lothian.")) + setattr(cls, "GB-ELS", + PermissibleValue( + text="GB-ELS", + description="Region code for Eilean Siar.")) + setattr(cls, "GB-ENF", + PermissibleValue( + text="GB-ENF", + description="Region code for Enfield.")) + setattr(cls, "GB-ENG", + PermissibleValue( + text="GB-ENG", + description="Region code for England.")) + setattr(cls, "GB-ERW", + PermissibleValue( + text="GB-ERW", + description="Region code for East Renfrewshire.")) + setattr(cls, "GB-ERY", + PermissibleValue( + text="GB-ERY", + description="Region code for East Riding of Yorkshire.")) + setattr(cls, "GB-ESS", + PermissibleValue( + text="GB-ESS", + description="Region code for Essex.")) + setattr(cls, "GB-ESX", + PermissibleValue( + text="GB-ESX", + description="Region code for East Sussex.")) + setattr(cls, "GB-FAL", + PermissibleValue( + text="GB-FAL", + description="Region code for Falkirk.")) + setattr(cls, "GB-FIF", + PermissibleValue( + text="GB-FIF", + description="Region code for Fife.")) + setattr(cls, "GB-FLN", + PermissibleValue( + text="GB-FLN", + description="Region code for Flintshire [Sir y Fflint GB-FFL].")) + setattr(cls, "GB-FMO", + PermissibleValue( + text="GB-FMO", + description="Region code for Fermanagh and Omagh.")) + setattr(cls, "GB-GAT", + PermissibleValue( + text="GB-GAT", + description="Region code for Gateshead.")) + setattr(cls, "GB-GLG", + PermissibleValue( + text="GB-GLG", + description="Region code for Glasgow City.")) + setattr(cls, "GB-GLS", + PermissibleValue( + text="GB-GLS", + description="Region code for Gloucestershire.")) + setattr(cls, "GB-GRE", + PermissibleValue( + text="GB-GRE", + description="Region code for Greenwich.")) + setattr(cls, "GB-GWN", + PermissibleValue( + text="GB-GWN", + description="Region code for Gwynedd.")) + setattr(cls, "GB-HAL", + PermissibleValue( + text="GB-HAL", + description="Region code for Halton.")) + setattr(cls, "GB-HAM", + PermissibleValue( + text="GB-HAM", + description="Region code for Hampshire.")) + setattr(cls, "GB-HAV", + PermissibleValue( + text="GB-HAV", + description="Region code for Havering.")) + setattr(cls, "GB-HCK", + PermissibleValue( + text="GB-HCK", + description="Region code for Hackney.")) + setattr(cls, "GB-HEF", + PermissibleValue( + text="GB-HEF", + description="Region code for Herefordshire.")) + setattr(cls, "GB-HIL", + PermissibleValue( + text="GB-HIL", + description="Region code for Hillingdon.")) + setattr(cls, "GB-HLD", + PermissibleValue( + text="GB-HLD", + description="Region code for Highland.")) + setattr(cls, "GB-HMF", + PermissibleValue( + text="GB-HMF", + description="Region code for Hammersmith and Fulham.")) + setattr(cls, "GB-HNS", + PermissibleValue( + text="GB-HNS", + description="Region code for Hounslow.")) + setattr(cls, "GB-HPL", + PermissibleValue( + text="GB-HPL", + description="Region code for Hartlepool.")) + setattr(cls, "GB-HRT", + PermissibleValue( + text="GB-HRT", + description="Region code for Hertfordshire.")) + setattr(cls, "GB-HRW", + PermissibleValue( + text="GB-HRW", + description="Region code for Harrow.")) + setattr(cls, "GB-HRY", + PermissibleValue( + text="GB-HRY", + description="Region code for Haringey.")) + setattr(cls, "GB-IOS", + PermissibleValue( + text="GB-IOS", + description="Region code for Isles of Scilly.")) + setattr(cls, "GB-IOW", + PermissibleValue( + text="GB-IOW", + description="Region code for Isle of Wight.")) + setattr(cls, "GB-ISL", + PermissibleValue( + text="GB-ISL", + description="Region code for Islington.")) + setattr(cls, "GB-IVC", + PermissibleValue( + text="GB-IVC", + description="Region code for Inverclyde.")) + setattr(cls, "GB-KEC", + PermissibleValue( + text="GB-KEC", + description="Region code for Kensington and Chelsea.")) + setattr(cls, "GB-KEN", + PermissibleValue( + text="GB-KEN", + description="Region code for Kent.")) + setattr(cls, "GB-KHL", + PermissibleValue( + text="GB-KHL", + description="Region code for Kingston upon Hull.")) + setattr(cls, "GB-KIR", + PermissibleValue( + text="GB-KIR", + description="Region code for Kirklees.")) + setattr(cls, "GB-KTT", + PermissibleValue( + text="GB-KTT", + description="Region code for Kingston upon Thames.")) + setattr(cls, "GB-KWL", + PermissibleValue( + text="GB-KWL", + description="Region code for Knowsley.")) + setattr(cls, "GB-LAN", + PermissibleValue( + text="GB-LAN", + description="Region code for Lancashire.")) + setattr(cls, "GB-LBC", + PermissibleValue( + text="GB-LBC", + description="Region code for Lisburn and Castlereagh.")) + setattr(cls, "GB-LBH", + PermissibleValue( + text="GB-LBH", + description="Region code for Lambeth.")) + setattr(cls, "GB-LCE", + PermissibleValue( + text="GB-LCE", + description="Region code for Leicester.")) + setattr(cls, "GB-LDS", + PermissibleValue( + text="GB-LDS", + description="Region code for Leeds.")) + setattr(cls, "GB-LEC", + PermissibleValue( + text="GB-LEC", + description="Region code for Leicestershire.")) + setattr(cls, "GB-LEW", + PermissibleValue( + text="GB-LEW", + description="Region code for Lewisham.")) + setattr(cls, "GB-LIN", + PermissibleValue( + text="GB-LIN", + description="Region code for Lincolnshire.")) + setattr(cls, "GB-LIV", + PermissibleValue( + text="GB-LIV", + description="Region code for Liverpool.")) + setattr(cls, "GB-LND", + PermissibleValue( + text="GB-LND", + description="Region code for London, City of.")) + setattr(cls, "GB-LUT", + PermissibleValue( + text="GB-LUT", + description="Region code for Luton.")) + setattr(cls, "GB-MAN", + PermissibleValue( + text="GB-MAN", + description="Region code for Manchester.")) + setattr(cls, "GB-MDB", + PermissibleValue( + text="GB-MDB", + description="Region code for Middlesbrough.")) + setattr(cls, "GB-MDW", + PermissibleValue( + text="GB-MDW", + description="Region code for Medway.")) + setattr(cls, "GB-MEA", + PermissibleValue( + text="GB-MEA", + description="Region code for Mid and East Antrim.")) + setattr(cls, "GB-MIK", + PermissibleValue( + text="GB-MIK", + description="Region code for Milton Keynes.")) + setattr(cls, "GB-MLN", + PermissibleValue( + text="GB-MLN", + description="Region code for Midlothian.")) + setattr(cls, "GB-MON", + PermissibleValue( + text="GB-MON", + description="Region code for Monmouthshire [Sir Fynwy GB-FYN].")) + setattr(cls, "GB-MRT", + PermissibleValue( + text="GB-MRT", + description="Region code for Merton.")) + setattr(cls, "GB-MRY", + PermissibleValue( + text="GB-MRY", + description="Region code for Moray.")) + setattr(cls, "GB-MTY", + PermissibleValue( + text="GB-MTY", + description="Region code for Merthyr Tydfil [Merthyr Tudful GB-MTU].")) + setattr(cls, "GB-MUL", + PermissibleValue( + text="GB-MUL", + description="Region code for Mid-Ulster.")) + setattr(cls, "GB-NAY", + PermissibleValue( + text="GB-NAY", + description="Region code for North Ayrshire.")) + setattr(cls, "GB-NBL", + PermissibleValue( + text="GB-NBL", + description="Region code for Northumberland.")) + setattr(cls, "GB-NEL", + PermissibleValue( + text="GB-NEL", + description="Region code for North East Lincolnshire.")) + setattr(cls, "GB-NET", + PermissibleValue( + text="GB-NET", + description="Region code for Newcastle upon Tyne.")) + setattr(cls, "GB-NFK", + PermissibleValue( + text="GB-NFK", + description="Region code for Norfolk.")) + setattr(cls, "GB-NGM", + PermissibleValue( + text="GB-NGM", + description="Region code for Nottingham.")) + setattr(cls, "GB-NIR", + PermissibleValue( + text="GB-NIR", + description="Region code for Northern Ireland.")) + setattr(cls, "GB-NLK", + PermissibleValue( + text="GB-NLK", + description="Region code for North Lanarkshire.")) + setattr(cls, "GB-NLN", + PermissibleValue( + text="GB-NLN", + description="Region code for North Lincolnshire.")) + setattr(cls, "GB-NMD", + PermissibleValue( + text="GB-NMD", + description="Region code for Newry, Mourne and Down.")) + setattr(cls, "GB-NNH", + PermissibleValue( + text="GB-NNH", + description="Region code for North Northamptonshire.")) + setattr(cls, "GB-NSM", + PermissibleValue( + text="GB-NSM", + description="Region code for North Somerset.")) + setattr(cls, "GB-NTL", + PermissibleValue( + text="GB-NTL", + description="Region code for Neath Port Talbot [Castell-nedd Port Talbot GB-CTL].")) + setattr(cls, "GB-NTT", + PermissibleValue( + text="GB-NTT", + description="Region code for Nottinghamshire.")) + setattr(cls, "GB-NTY", + PermissibleValue( + text="GB-NTY", + description="Region code for North Tyneside.")) + setattr(cls, "GB-NWM", + PermissibleValue( + text="GB-NWM", + description="Region code for Newham.")) + setattr(cls, "GB-NWP", + PermissibleValue( + text="GB-NWP", + description="Region code for Newport [Casnewydd GB-CNW].")) + setattr(cls, "GB-NYK", + PermissibleValue( + text="GB-NYK", + description="Region code for North Yorkshire.")) + setattr(cls, "GB-OLD", + PermissibleValue( + text="GB-OLD", + description="Region code for Oldham.")) + setattr(cls, "GB-ORK", + PermissibleValue( + text="GB-ORK", + description="Region code for Orkney Islands.")) + setattr(cls, "GB-OXF", + PermissibleValue( + text="GB-OXF", + description="Region code for Oxfordshire.")) + setattr(cls, "GB-PEM", + PermissibleValue( + text="GB-PEM", + description="Region code for Pembrokeshire [Sir Benfro GB-BNF].")) + setattr(cls, "GB-PKN", + PermissibleValue( + text="GB-PKN", + description="Region code for Perth and Kinross.")) + setattr(cls, "GB-PLY", + PermissibleValue( + text="GB-PLY", + description="Region code for Plymouth.")) + setattr(cls, "GB-POR", + PermissibleValue( + text="GB-POR", + description="Region code for Portsmouth.")) + setattr(cls, "GB-POW", + PermissibleValue( + text="GB-POW", + description="Region code for Powys.")) + setattr(cls, "GB-PTE", + PermissibleValue( + text="GB-PTE", + description="Region code for Peterborough.")) + setattr(cls, "GB-RCC", + PermissibleValue( + text="GB-RCC", + description="Region code for Redcar and Cleveland.")) + setattr(cls, "GB-RCH", + PermissibleValue( + text="GB-RCH", + description="Region code for Rochdale.")) + setattr(cls, "GB-RCT", + PermissibleValue( + text="GB-RCT", + description="Region code for Rhondda Cynon Taff [Rhondda CynonTaf].")) + setattr(cls, "GB-RDB", + PermissibleValue( + text="GB-RDB", + description="Region code for Redbridge.")) + setattr(cls, "GB-RDG", + PermissibleValue( + text="GB-RDG", + description="Region code for Reading.")) + setattr(cls, "GB-RFW", + PermissibleValue( + text="GB-RFW", + description="Region code for Renfrewshire.")) + setattr(cls, "GB-RIC", + PermissibleValue( + text="GB-RIC", + description="Region code for Richmond upon Thames.")) + setattr(cls, "GB-ROT", + PermissibleValue( + text="GB-ROT", + description="Region code for Rotherham.")) + setattr(cls, "GB-RUT", + PermissibleValue( + text="GB-RUT", + description="Region code for Rutland.")) + setattr(cls, "GB-SAW", + PermissibleValue( + text="GB-SAW", + description="Region code for Sandwell.")) + setattr(cls, "GB-SAY", + PermissibleValue( + text="GB-SAY", + description="Region code for South Ayrshire.")) + setattr(cls, "GB-SCB", + PermissibleValue( + text="GB-SCB", + description="Region code for Scottish Borders.")) + setattr(cls, "GB-SCT", + PermissibleValue( + text="GB-SCT", + description="Region code for Scotland.")) + setattr(cls, "GB-SFK", + PermissibleValue( + text="GB-SFK", + description="Region code for Suffolk.")) + setattr(cls, "GB-SFT", + PermissibleValue( + text="GB-SFT", + description="Region code for Sefton.")) + setattr(cls, "GB-SGC", + PermissibleValue( + text="GB-SGC", + description="Region code for South Gloucestershire.")) + setattr(cls, "GB-SHF", + PermissibleValue( + text="GB-SHF", + description="Region code for Sheffield.")) + setattr(cls, "GB-SHN", + PermissibleValue( + text="GB-SHN", + description="Region code for St. Helens.")) + setattr(cls, "GB-SHR", + PermissibleValue( + text="GB-SHR", + description="Region code for Shropshire.")) + setattr(cls, "GB-SKP", + PermissibleValue( + text="GB-SKP", + description="Region code for Stockport.")) + setattr(cls, "GB-SLF", + PermissibleValue( + text="GB-SLF", + description="Region code for Salford.")) + setattr(cls, "GB-SLG", + PermissibleValue( + text="GB-SLG", + description="Region code for Slough.")) + setattr(cls, "GB-SLK", + PermissibleValue( + text="GB-SLK", + description="Region code for South Lanarkshire.")) + setattr(cls, "GB-SND", + PermissibleValue( + text="GB-SND", + description="Region code for Sunderland.")) + setattr(cls, "GB-SOL", + PermissibleValue( + text="GB-SOL", + description="Region code for Solihull.")) + setattr(cls, "GB-SOM", + PermissibleValue( + text="GB-SOM", + description="Region code for Somerset.")) + setattr(cls, "GB-SOS", + PermissibleValue( + text="GB-SOS", + description="Region code for Southend-on-Sea.")) + setattr(cls, "GB-SRY", + PermissibleValue( + text="GB-SRY", + description="Region code for Surrey.")) + setattr(cls, "GB-STE", + PermissibleValue( + text="GB-STE", + description="Region code for Stoke-on-Trent.")) + setattr(cls, "GB-STG", + PermissibleValue( + text="GB-STG", + description="Region code for Stirling.")) + setattr(cls, "GB-STH", + PermissibleValue( + text="GB-STH", + description="Region code for Southampton.")) + setattr(cls, "GB-STN", + PermissibleValue( + text="GB-STN", + description="Region code for Sutton.")) + setattr(cls, "GB-STS", + PermissibleValue( + text="GB-STS", + description="Region code for Staffordshire.")) + setattr(cls, "GB-STT", + PermissibleValue( + text="GB-STT", + description="Region code for Stockton-on-Tees.")) + setattr(cls, "GB-STY", + PermissibleValue( + text="GB-STY", + description="Region code for South Tyneside.")) + setattr(cls, "GB-SWA", + PermissibleValue( + text="GB-SWA", + description="Region code for Swansea [Abertawe GB-ATA].")) + setattr(cls, "GB-SWD", + PermissibleValue( + text="GB-SWD", + description="Region code for Swindon.")) + setattr(cls, "GB-SWK", + PermissibleValue( + text="GB-SWK", + description="Region code for Southwark.")) + setattr(cls, "GB-TAM", + PermissibleValue( + text="GB-TAM", + description="Region code for Tameside.")) + setattr(cls, "GB-TFW", + PermissibleValue( + text="GB-TFW", + description="Region code for Telford and Wrekin.")) + setattr(cls, "GB-THR", + PermissibleValue( + text="GB-THR", + description="Region code for Thurrock.")) + setattr(cls, "GB-TOB", + PermissibleValue( + text="GB-TOB", + description="Region code for Torbay.")) + setattr(cls, "GB-TOF", + PermissibleValue( + text="GB-TOF", + description="Region code for Torfaen [Tor-faen].")) + setattr(cls, "GB-TRF", + PermissibleValue( + text="GB-TRF", + description="Region code for Trafford.")) + setattr(cls, "GB-TWH", + PermissibleValue( + text="GB-TWH", + description="Region code for Tower Hamlets.")) + setattr(cls, "GB-VGL", + PermissibleValue( + text="GB-VGL", + description="Region code for Vale of Glamorgan, The [Bro Morgannwg GB-BMG].")) + setattr(cls, "GB-WAR", + PermissibleValue( + text="GB-WAR", + description="Region code for Warwickshire.")) + setattr(cls, "GB-WBK", + PermissibleValue( + text="GB-WBK", + description="Region code for West Berkshire.")) + setattr(cls, "GB-WDU", + PermissibleValue( + text="GB-WDU", + description="Region code for West Dunbartonshire.")) + setattr(cls, "GB-WFT", + PermissibleValue( + text="GB-WFT", + description="Region code for Waltham Forest.")) + setattr(cls, "GB-WGN", + PermissibleValue( + text="GB-WGN", + description="Region code for Wigan.")) + setattr(cls, "GB-WIL", + PermissibleValue( + text="GB-WIL", + description="Region code for Wiltshire.")) + setattr(cls, "GB-WKF", + PermissibleValue( + text="GB-WKF", + description="Region code for Wakefield.")) + setattr(cls, "GB-WLL", + PermissibleValue( + text="GB-WLL", + description="Region code for Walsall.")) + setattr(cls, "GB-WLN", + PermissibleValue( + text="GB-WLN", + description="Region code for West Lothian.")) + setattr(cls, "GB-WLS", + PermissibleValue( + text="GB-WLS", + description="Region code for Wales [Cymru GB-CYM].")) + setattr(cls, "GB-WLV", + PermissibleValue( + text="GB-WLV", + description="Region code for Wolverhampton.")) + setattr(cls, "GB-WND", + PermissibleValue( + text="GB-WND", + description="Region code for Wandsworth.")) + setattr(cls, "GB-WNH", + PermissibleValue( + text="GB-WNH", + description="Region code for West Northamptonshire.")) + setattr(cls, "GB-WNM", + PermissibleValue( + text="GB-WNM", + description="Region code for Windsor and Maidenhead.")) + setattr(cls, "GB-WOK", + PermissibleValue( + text="GB-WOK", + description="Region code for Wokingham.")) + setattr(cls, "GB-WOR", + PermissibleValue( + text="GB-WOR", + description="Region code for Worcestershire.")) + setattr(cls, "GB-WRL", + PermissibleValue( + text="GB-WRL", + description="Region code for Wirral.")) + setattr(cls, "GB-WRT", + PermissibleValue( + text="GB-WRT", + description="Region code for Warrington.")) + setattr(cls, "GB-WRX", + PermissibleValue( + text="GB-WRX", + description="Region code for Wrexham [Wrecsam GB-WRC].")) + setattr(cls, "GB-WSM", + PermissibleValue( + text="GB-WSM", + description="Region code for Westminster.")) + setattr(cls, "GB-WSX", + PermissibleValue( + text="GB-WSX", + description="Region code for West Sussex.")) + setattr(cls, "GB-YOR", + PermissibleValue( + text="GB-YOR", + description="Region code for York.")) + setattr(cls, "GB-ZET", + PermissibleValue( + text="GB-ZET", + description="Region code for Shetland Islands.")) + setattr(cls, "GD-01", + PermissibleValue( + text="GD-01", + description="Region code for Saint Andrew.")) + setattr(cls, "GD-02", + PermissibleValue( + text="GD-02", + description="Region code for Saint David.")) + setattr(cls, "GD-03", + PermissibleValue( + text="GD-03", + description="Region code for Saint George.")) + setattr(cls, "GD-04", + PermissibleValue( + text="GD-04", + description="Region code for Saint John.")) + setattr(cls, "GD-05", + PermissibleValue( + text="GD-05", + description="Region code for Saint Mark.")) + setattr(cls, "GD-06", + PermissibleValue( + text="GD-06", + description="Region code for Saint Patrick.")) + setattr(cls, "GD-10", + PermissibleValue( + text="GD-10", + description="Region code for Southern Grenadine Islands.")) + setattr(cls, "GE-AB", + PermissibleValue( + text="GE-AB", + description="Region code for Abkhazia.")) + setattr(cls, "GE-AJ", + PermissibleValue( + text="GE-AJ", + description="Region code for Ajaria.")) + setattr(cls, "GE-GU", + PermissibleValue( + text="GE-GU", + description="Region code for Guria.")) + setattr(cls, "GE-IM", + PermissibleValue( + text="GE-IM", + description="Region code for Imereti.")) + setattr(cls, "GE-KA", + PermissibleValue( + text="GE-KA", + description="Region code for K'akheti.")) + setattr(cls, "GE-KK", + PermissibleValue( + text="GE-KK", + description="Region code for Kvemo Kartli.")) + setattr(cls, "GE-MM", + PermissibleValue( + text="GE-MM", + description="Region code for Mtskheta-Mtianeti.")) + setattr(cls, "GE-RL", + PermissibleValue( + text="GE-RL", + description="Region code for Rach'a-Lechkhumi-Kvemo Svaneti.")) + setattr(cls, "GE-SJ", + PermissibleValue( + text="GE-SJ", + description="Region code for Samtskhe-Javakheti.")) + setattr(cls, "GE-SK", + PermissibleValue( + text="GE-SK", + description="Region code for Shida Kartli.")) + setattr(cls, "GE-SZ", + PermissibleValue( + text="GE-SZ", + description="Region code for Samegrelo-Zemo Svaneti.")) + setattr(cls, "GE-TB", + PermissibleValue( + text="GE-TB", + description="Region code for Tbilisi.")) + setattr(cls, "GH-AA", + PermissibleValue( + text="GH-AA", + description="Region code for Greater Accra.")) + setattr(cls, "GH-AF", + PermissibleValue( + text="GH-AF", + description="Region code for Ahafo.")) + setattr(cls, "GH-AH", + PermissibleValue( + text="GH-AH", + description="Region code for Ashanti.")) + setattr(cls, "GH-BE", + PermissibleValue( + text="GH-BE", + description="Region code for Bono East.")) + setattr(cls, "GH-BO", + PermissibleValue( + text="GH-BO", + description="Region code for Bono.")) + setattr(cls, "GH-CP", + PermissibleValue( + text="GH-CP", + description="Region code for Central.")) + setattr(cls, "GH-EP", + PermissibleValue( + text="GH-EP", + description="Region code for Eastern.")) + setattr(cls, "GH-NE", + PermissibleValue( + text="GH-NE", + description="Region code for North East.")) + setattr(cls, "GH-NP", + PermissibleValue( + text="GH-NP", + description="Region code for Northern.")) + setattr(cls, "GH-OT", + PermissibleValue( + text="GH-OT", + description="Region code for Oti.")) + setattr(cls, "GH-SV", + PermissibleValue( + text="GH-SV", + description="Region code for Savannah.")) + setattr(cls, "GH-TV", + PermissibleValue( + text="GH-TV", + description="Region code for Volta.")) + setattr(cls, "GH-UE", + PermissibleValue( + text="GH-UE", + description="Region code for Upper East.")) + setattr(cls, "GH-UW", + PermissibleValue( + text="GH-UW", + description="Region code for Upper West.")) + setattr(cls, "GH-WN", + PermissibleValue( + text="GH-WN", + description="Region code for Western North.")) + setattr(cls, "GH-WP", + PermissibleValue( + text="GH-WP", + description="Region code for Western.")) + setattr(cls, "GL-AV", + PermissibleValue( + text="GL-AV", + description="Region code for Avannaata Kommunia.")) + setattr(cls, "GL-KU", + PermissibleValue( + text="GL-KU", + description="Region code for Kommune Kujalleq.")) + setattr(cls, "GL-QE", + PermissibleValue( + text="GL-QE", + description="Region code for Qeqqata Kommunia.")) + setattr(cls, "GL-QT", + PermissibleValue( + text="GL-QT", + description="Region code for Kommune Qeqertalik.")) + setattr(cls, "GL-SM", + PermissibleValue( + text="GL-SM", + description="Region code for Kommuneqarfik Sermersooq.")) + setattr(cls, "GM-B", + PermissibleValue( + text="GM-B", + description="Region code for Banjul.")) + setattr(cls, "GM-L", + PermissibleValue( + text="GM-L", + description="Region code for Lower River.")) + setattr(cls, "GM-M", + PermissibleValue( + text="GM-M", + description="Region code for Central River.")) + setattr(cls, "GM-N", + PermissibleValue( + text="GM-N", + description="Region code for North Bank.")) + setattr(cls, "GM-U", + PermissibleValue( + text="GM-U", + description="Region code for Upper River.")) + setattr(cls, "GM-W", + PermissibleValue( + text="GM-W", + description="Region code for Western.")) + setattr(cls, "GN-B", + PermissibleValue( + text="GN-B", + description="Region code for Boké.")) + setattr(cls, "GN-BE", + PermissibleValue( + text="GN-BE", + description="Region code for Beyla.")) + setattr(cls, "GN-BF", + PermissibleValue( + text="GN-BF", + description="Region code for Boffa.")) + setattr(cls, "GN-BK", + PermissibleValue( + text="GN-BK", + description="Region code for Boké.")) + setattr(cls, "GN-C", + PermissibleValue( + text="GN-C", + description="Region code for Conakry.")) + setattr(cls, "GN-CO", + PermissibleValue( + text="GN-CO", + description="Region code for Coyah.")) + setattr(cls, "GN-D", + PermissibleValue( + text="GN-D", + description="Region code for Kindia.")) + setattr(cls, "GN-DB", + PermissibleValue( + text="GN-DB", + description="Region code for Dabola.")) + setattr(cls, "GN-DI", + PermissibleValue( + text="GN-DI", + description="Region code for Dinguiraye.")) + setattr(cls, "GN-DL", + PermissibleValue( + text="GN-DL", + description="Region code for Dalaba.")) + setattr(cls, "GN-DU", + PermissibleValue( + text="GN-DU", + description="Region code for Dubréka.")) + setattr(cls, "GN-F", + PermissibleValue( + text="GN-F", + description="Region code for Faranah.")) + setattr(cls, "GN-FA", + PermissibleValue( + text="GN-FA", + description="Region code for Faranah.")) + setattr(cls, "GN-FO", + PermissibleValue( + text="GN-FO", + description="Region code for Forécariah.")) + setattr(cls, "GN-FR", + PermissibleValue( + text="GN-FR", + description="Region code for Fria.")) + setattr(cls, "GN-GA", + PermissibleValue( + text="GN-GA", + description="Region code for Gaoual.")) + setattr(cls, "GN-GU", + PermissibleValue( + text="GN-GU", + description="Region code for Guékédou.")) + setattr(cls, "GN-K", + PermissibleValue( + text="GN-K", + description="Region code for Kankan.")) + setattr(cls, "GN-KA", + PermissibleValue( + text="GN-KA", + description="Region code for Kankan.")) + setattr(cls, "GN-KB", + PermissibleValue( + text="GN-KB", + description="Region code for Koubia.")) + setattr(cls, "GN-KD", + PermissibleValue( + text="GN-KD", + description="Region code for Kindia.")) + setattr(cls, "GN-KE", + PermissibleValue( + text="GN-KE", + description="Region code for Kérouané.")) + setattr(cls, "GN-KN", + PermissibleValue( + text="GN-KN", + description="Region code for Koundara.")) + setattr(cls, "GN-KO", + PermissibleValue( + text="GN-KO", + description="Region code for Kouroussa.")) + setattr(cls, "GN-KS", + PermissibleValue( + text="GN-KS", + description="Region code for Kissidougou.")) + setattr(cls, "GN-L", + PermissibleValue( + text="GN-L", + description="Region code for Labé.")) + setattr(cls, "GN-LA", + PermissibleValue( + text="GN-LA", + description="Region code for Labé.")) + setattr(cls, "GN-LE", + PermissibleValue( + text="GN-LE", + description="Region code for Lélouma.")) + setattr(cls, "GN-LO", + PermissibleValue( + text="GN-LO", + description="Region code for Lola.")) + setattr(cls, "GN-M", + PermissibleValue( + text="GN-M", + description="Region code for Mamou.")) + setattr(cls, "GN-MC", + PermissibleValue( + text="GN-MC", + description="Region code for Macenta.")) + setattr(cls, "GN-MD", + PermissibleValue( + text="GN-MD", + description="Region code for Mandiana.")) + setattr(cls, "GN-ML", + PermissibleValue( + text="GN-ML", + description="Region code for Mali.")) + setattr(cls, "GN-MM", + PermissibleValue( + text="GN-MM", + description="Region code for Mamou.")) + setattr(cls, "GN-N", + PermissibleValue( + text="GN-N", + description="Region code for Nzérékoré.")) + setattr(cls, "GN-NZ", + PermissibleValue( + text="GN-NZ", + description="Region code for Nzérékoré.")) + setattr(cls, "GN-PI", + PermissibleValue( + text="GN-PI", + description="Region code for Pita.")) + setattr(cls, "GN-SI", + PermissibleValue( + text="GN-SI", + description="Region code for Siguiri.")) + setattr(cls, "GN-TE", + PermissibleValue( + text="GN-TE", + description="Region code for Télimélé.")) + setattr(cls, "GN-TO", + PermissibleValue( + text="GN-TO", + description="Region code for Tougué.")) + setattr(cls, "GN-YO", + PermissibleValue( + text="GN-YO", + description="Region code for Yomou.")) + setattr(cls, "GQ-AN", + PermissibleValue( + text="GQ-AN", + description="Region code for Annobon.")) + setattr(cls, "GQ-BN", + PermissibleValue( + text="GQ-BN", + description="Region code for Bioko Nord.")) + setattr(cls, "GQ-BS", + PermissibleValue( + text="GQ-BS", + description="Region code for Bioko Sud.")) + setattr(cls, "GQ-C", + PermissibleValue( + text="GQ-C", + description="Region code for Région Continentale.")) + setattr(cls, "GQ-CS", + PermissibleValue( + text="GQ-CS", + description="Region code for Centro Sud.")) + setattr(cls, "GQ-DJ", + PermissibleValue( + text="GQ-DJ", + description="Region code for Djibloho.")) + setattr(cls, "GQ-I", + PermissibleValue( + text="GQ-I", + description="Region code for Région Insulaire.")) + setattr(cls, "GQ-KN", + PermissibleValue( + text="GQ-KN", + description="Region code for Kié-Ntem.")) + setattr(cls, "GQ-LI", + PermissibleValue( + text="GQ-LI", + description="Region code for Littoral.")) + setattr(cls, "GQ-WN", + PermissibleValue( + text="GQ-WN", + description="Region code for Wele-Nzas.")) + setattr(cls, "GR-69", + PermissibleValue( + text="GR-69", + description="Region code for Ágion Óros.")) + setattr(cls, "GR-A", + PermissibleValue( + text="GR-A", + description="Region code for Anatolikí Makedonía kai Thráki.")) + setattr(cls, "GR-B", + PermissibleValue( + text="GR-B", + description="Region code for Kentrikí Makedonía.")) + setattr(cls, "GR-C", + PermissibleValue( + text="GR-C", + description="Region code for Dytikí Makedonía.")) + setattr(cls, "GR-D", + PermissibleValue( + text="GR-D", + description="Region code for Ípeiros.")) + setattr(cls, "GR-E", + PermissibleValue( + text="GR-E", + description="Region code for Thessalía.")) + setattr(cls, "GR-F", + PermissibleValue( + text="GR-F", + description="Region code for Ionía Nísia.")) + setattr(cls, "GR-G", + PermissibleValue( + text="GR-G", + description="Region code for Dytikí Elláda.")) + setattr(cls, "GR-H", + PermissibleValue( + text="GR-H", + description="Region code for Stereá Elláda.")) + setattr(cls, "GR-I", + PermissibleValue( + text="GR-I", + description="Region code for Attikí.")) + setattr(cls, "GR-J", + PermissibleValue( + text="GR-J", + description="Region code for Pelopónnisos.")) + setattr(cls, "GR-K", + PermissibleValue( + text="GR-K", + description="Region code for Vóreio Aigaío.")) + setattr(cls, "GR-L", + PermissibleValue( + text="GR-L", + description="Region code for Nótio Aigaío.")) + setattr(cls, "GR-M", + PermissibleValue( + text="GR-M", + description="Region code for Kríti.")) + setattr(cls, "GT-01", + PermissibleValue( + text="GT-01", + description="Region code for Guatemala.")) + setattr(cls, "GT-02", + PermissibleValue( + text="GT-02", + description="Region code for El Progreso.")) + setattr(cls, "GT-03", + PermissibleValue( + text="GT-03", + description="Region code for Sacatepéquez.")) + setattr(cls, "GT-04", + PermissibleValue( + text="GT-04", + description="Region code for Chimaltenango.")) + setattr(cls, "GT-05", + PermissibleValue( + text="GT-05", + description="Region code for Escuintla.")) + setattr(cls, "GT-06", + PermissibleValue( + text="GT-06", + description="Region code for Santa Rosa.")) + setattr(cls, "GT-07", + PermissibleValue( + text="GT-07", + description="Region code for Sololá.")) + setattr(cls, "GT-08", + PermissibleValue( + text="GT-08", + description="Region code for Totonicapán.")) + setattr(cls, "GT-09", + PermissibleValue( + text="GT-09", + description="Region code for Quetzaltenango.")) + setattr(cls, "GT-10", + PermissibleValue( + text="GT-10", + description="Region code for Suchitepéquez.")) + setattr(cls, "GT-11", + PermissibleValue( + text="GT-11", + description="Region code for Retalhuleu.")) + setattr(cls, "GT-12", + PermissibleValue( + text="GT-12", + description="Region code for San Marcos.")) + setattr(cls, "GT-13", + PermissibleValue( + text="GT-13", + description="Region code for Huehuetenango.")) + setattr(cls, "GT-14", + PermissibleValue( + text="GT-14", + description="Region code for Quiché.")) + setattr(cls, "GT-15", + PermissibleValue( + text="GT-15", + description="Region code for Baja Verapaz.")) + setattr(cls, "GT-16", + PermissibleValue( + text="GT-16", + description="Region code for Alta Verapaz.")) + setattr(cls, "GT-17", + PermissibleValue( + text="GT-17", + description="Region code for Petén.")) + setattr(cls, "GT-18", + PermissibleValue( + text="GT-18", + description="Region code for Izabal.")) + setattr(cls, "GT-19", + PermissibleValue( + text="GT-19", + description="Region code for Zacapa.")) + setattr(cls, "GT-20", + PermissibleValue( + text="GT-20", + description="Region code for Chiquimula.")) + setattr(cls, "GT-21", + PermissibleValue( + text="GT-21", + description="Region code for Jalapa.")) + setattr(cls, "GT-22", + PermissibleValue( + text="GT-22", + description="Region code for Jutiapa.")) + setattr(cls, "GW-BA", + PermissibleValue( + text="GW-BA", + description="Region code for Bafatá.")) + setattr(cls, "GW-BL", + PermissibleValue( + text="GW-BL", + description="Region code for Bolama / Bijagós.")) + setattr(cls, "GW-BM", + PermissibleValue( + text="GW-BM", + description="Region code for Biombo.")) + setattr(cls, "GW-BS", + PermissibleValue( + text="GW-BS", + description="Region code for Bissau.")) + setattr(cls, "GW-CA", + PermissibleValue( + text="GW-CA", + description="Region code for Cacheu.")) + setattr(cls, "GW-GA", + PermissibleValue( + text="GW-GA", + description="Region code for Gabú.")) + setattr(cls, "GW-L", + PermissibleValue( + text="GW-L", + description="Region code for Leste.")) + setattr(cls, "GW-N", + PermissibleValue( + text="GW-N", + description="Region code for Norte.")) + setattr(cls, "GW-OI", + PermissibleValue( + text="GW-OI", + description="Region code for Oio.")) + setattr(cls, "GW-QU", + PermissibleValue( + text="GW-QU", + description="Region code for Quinara.")) + setattr(cls, "GW-S", + PermissibleValue( + text="GW-S", + description="Region code for Sul.")) + setattr(cls, "GW-TO", + PermissibleValue( + text="GW-TO", + description="Region code for Tombali.")) + setattr(cls, "GY-BA", + PermissibleValue( + text="GY-BA", + description="Region code for Barima-Waini.")) + setattr(cls, "GY-CU", + PermissibleValue( + text="GY-CU", + description="Region code for Cuyuni-Mazaruni.")) + setattr(cls, "GY-DE", + PermissibleValue( + text="GY-DE", + description="Region code for Demerara-Mahaica.")) + setattr(cls, "GY-EB", + PermissibleValue( + text="GY-EB", + description="Region code for East Berbice-Corentyne.")) + setattr(cls, "GY-ES", + PermissibleValue( + text="GY-ES", + description="Region code for Essequibo Islands-West Demerara.")) + setattr(cls, "GY-MA", + PermissibleValue( + text="GY-MA", + description="Region code for Mahaica-Berbice.")) + setattr(cls, "GY-PM", + PermissibleValue( + text="GY-PM", + description="Region code for Pomeroon-Supenaam.")) + setattr(cls, "GY-PT", + PermissibleValue( + text="GY-PT", + description="Region code for Potaro-Siparuni.")) + setattr(cls, "GY-UD", + PermissibleValue( + text="GY-UD", + description="Region code for Upper Demerara-Berbice.")) + setattr(cls, "GY-UT", + PermissibleValue( + text="GY-UT", + description="Region code for Upper Takutu-Upper Essequibo.")) + setattr(cls, "HN-AT", + PermissibleValue( + text="HN-AT", + description="Region code for Atlántida.")) + setattr(cls, "HN-CH", + PermissibleValue( + text="HN-CH", + description="Region code for Choluteca.")) + setattr(cls, "HN-CL", + PermissibleValue( + text="HN-CL", + description="Region code for Colón.")) + setattr(cls, "HN-CM", + PermissibleValue( + text="HN-CM", + description="Region code for Comayagua.")) + setattr(cls, "HN-CP", + PermissibleValue( + text="HN-CP", + description="Region code for Copán.")) + setattr(cls, "HN-CR", + PermissibleValue( + text="HN-CR", + description="Region code for Cortés.")) + setattr(cls, "HN-EP", + PermissibleValue( + text="HN-EP", + description="Region code for El Paraíso.")) + setattr(cls, "HN-FM", + PermissibleValue( + text="HN-FM", + description="Region code for Francisco Morazán.")) + setattr(cls, "HN-GD", + PermissibleValue( + text="HN-GD", + description="Region code for Gracias a Dios.")) + setattr(cls, "HN-IB", + PermissibleValue( + text="HN-IB", + description="Region code for Islas de la Bahía.")) + setattr(cls, "HN-IN", + PermissibleValue( + text="HN-IN", + description="Region code for Intibucá.")) + setattr(cls, "HN-LE", + PermissibleValue( + text="HN-LE", + description="Region code for Lempira.")) + setattr(cls, "HN-LP", + PermissibleValue( + text="HN-LP", + description="Region code for La Paz.")) + setattr(cls, "HN-OC", + PermissibleValue( + text="HN-OC", + description="Region code for Ocotepeque.")) + setattr(cls, "HN-OL", + PermissibleValue( + text="HN-OL", + description="Region code for Olancho.")) + setattr(cls, "HN-SB", + PermissibleValue( + text="HN-SB", + description="Region code for Santa Bárbara.")) + setattr(cls, "HN-VA", + PermissibleValue( + text="HN-VA", + description="Region code for Valle.")) + setattr(cls, "HN-YO", + PermissibleValue( + text="HN-YO", + description="Region code for Yoro.")) + setattr(cls, "HR-01", + PermissibleValue( + text="HR-01", + description="Region code for Zagrebačka županija.")) + setattr(cls, "HR-02", + PermissibleValue( + text="HR-02", + description="Region code for Krapinsko-zagorska županija.")) + setattr(cls, "HR-03", + PermissibleValue( + text="HR-03", + description="Region code for Sisačko-moslavačka županija.")) + setattr(cls, "HR-04", + PermissibleValue( + text="HR-04", + description="Region code for Karlovačka županija.")) + setattr(cls, "HR-05", + PermissibleValue( + text="HR-05", + description="Region code for Varaždinska županija.")) + setattr(cls, "HR-06", + PermissibleValue( + text="HR-06", + description="Region code for Koprivničko-križevačka županija.")) + setattr(cls, "HR-07", + PermissibleValue( + text="HR-07", + description="Region code for Bjelovarsko-bilogorska županija.")) + setattr(cls, "HR-08", + PermissibleValue( + text="HR-08", + description="Region code for Primorsko-goranska županija.")) + setattr(cls, "HR-09", + PermissibleValue( + text="HR-09", + description="Region code for Ličko-senjska županija.")) + setattr(cls, "HR-10", + PermissibleValue( + text="HR-10", + description="Region code for Virovitičko-podravska županija.")) + setattr(cls, "HR-11", + PermissibleValue( + text="HR-11", + description="Region code for Požeško-slavonska županija.")) + setattr(cls, "HR-12", + PermissibleValue( + text="HR-12", + description="Region code for Brodsko-posavska županija.")) + setattr(cls, "HR-13", + PermissibleValue( + text="HR-13", + description="Region code for Zadarska županija.")) + setattr(cls, "HR-14", + PermissibleValue( + text="HR-14", + description="Region code for Osječko-baranjska županija.")) + setattr(cls, "HR-15", + PermissibleValue( + text="HR-15", + description="Region code for Šibensko-kninska županija.")) + setattr(cls, "HR-16", + PermissibleValue( + text="HR-16", + description="Region code for Vukovarsko-srijemska županija.")) + setattr(cls, "HR-17", + PermissibleValue( + text="HR-17", + description="Region code for Splitsko-dalmatinska županija.")) + setattr(cls, "HR-18", + PermissibleValue( + text="HR-18", + description="Region code for Istarska županija.")) + setattr(cls, "HR-19", + PermissibleValue( + text="HR-19", + description="Region code for Dubrovačko-neretvanska županija.")) + setattr(cls, "HR-20", + PermissibleValue( + text="HR-20", + description="Region code for Međimurska županija.")) + setattr(cls, "HR-21", + PermissibleValue( + text="HR-21", + description="Region code for Grad Zagreb.")) + setattr(cls, "HT-AR", + PermissibleValue( + text="HT-AR", + description="Region code for Artibonite.")) + setattr(cls, "HT-CE", + PermissibleValue( + text="HT-CE", + description="Region code for Centre.")) + setattr(cls, "HT-GA", + PermissibleValue( + text="HT-GA", + description="Region code for Grande’Anse.")) + setattr(cls, "HT-ND", + PermissibleValue( + text="HT-ND", + description="Region code for Nord.")) + setattr(cls, "HT-NE", + PermissibleValue( + text="HT-NE", + description="Region code for Nord-Est.")) + setattr(cls, "HT-NI", + PermissibleValue( + text="HT-NI", + description="Region code for Nippes.")) + setattr(cls, "HT-NO", + PermissibleValue( + text="HT-NO", + description="Region code for Nord-Ouest.")) + setattr(cls, "HT-OU", + PermissibleValue( + text="HT-OU", + description="Region code for Ouest.")) + setattr(cls, "HT-SD", + PermissibleValue( + text="HT-SD", + description="Region code for Sud.")) + setattr(cls, "HT-SE", + PermissibleValue( + text="HT-SE", + description="Region code for Sud-Est.")) + setattr(cls, "HU-BA", + PermissibleValue( + text="HU-BA", + description="Region code for Baranya.")) + setattr(cls, "HU-BC", + PermissibleValue( + text="HU-BC", + description="Region code for Békéscsaba.")) + setattr(cls, "HU-BE", + PermissibleValue( + text="HU-BE", + description="Region code for Békés.")) + setattr(cls, "HU-BK", + PermissibleValue( + text="HU-BK", + description="Region code for Bács-Kiskun.")) + setattr(cls, "HU-BU", + PermissibleValue( + text="HU-BU", + description="Region code for Budapest.")) + setattr(cls, "HU-BZ", + PermissibleValue( + text="HU-BZ", + description="Region code for Borsod-Abaúj-Zemplén.")) + setattr(cls, "HU-CS", + PermissibleValue( + text="HU-CS", + description="Region code for Csongrád-Csanád.")) + setattr(cls, "HU-DE", + PermissibleValue( + text="HU-DE", + description="Region code for Debrecen.")) + setattr(cls, "HU-DU", + PermissibleValue( + text="HU-DU", + description="Region code for Dunaújváros.")) + setattr(cls, "HU-EG", + PermissibleValue( + text="HU-EG", + description="Region code for Eger.")) + setattr(cls, "HU-ER", + PermissibleValue( + text="HU-ER", + description="Region code for Érd.")) + setattr(cls, "HU-FE", + PermissibleValue( + text="HU-FE", + description="Region code for Fejér.")) + setattr(cls, "HU-GS", + PermissibleValue( + text="HU-GS", + description="Region code for Győr-Moson-Sopron.")) + setattr(cls, "HU-GY", + PermissibleValue( + text="HU-GY", + description="Region code for Győr.")) + setattr(cls, "HU-HB", + PermissibleValue( + text="HU-HB", + description="Region code for Hajdú-Bihar.")) + setattr(cls, "HU-HE", + PermissibleValue( + text="HU-HE", + description="Region code for Heves.")) + setattr(cls, "HU-HV", + PermissibleValue( + text="HU-HV", + description="Region code for Hódmezővásárhely.")) + setattr(cls, "HU-JN", + PermissibleValue( + text="HU-JN", + description="Region code for Jász-Nagykun-Szolnok.")) + setattr(cls, "HU-KE", + PermissibleValue( + text="HU-KE", + description="Region code for Komárom-Esztergom.")) + setattr(cls, "HU-KM", + PermissibleValue( + text="HU-KM", + description="Region code for Kecskemét.")) + setattr(cls, "HU-KV", + PermissibleValue( + text="HU-KV", + description="Region code for Kaposvár.")) + setattr(cls, "HU-MI", + PermissibleValue( + text="HU-MI", + description="Region code for Miskolc.")) + setattr(cls, "HU-NK", + PermissibleValue( + text="HU-NK", + description="Region code for Nagykanizsa.")) + setattr(cls, "HU-NO", + PermissibleValue( + text="HU-NO", + description="Region code for Nógrád.")) + setattr(cls, "HU-NY", + PermissibleValue( + text="HU-NY", + description="Region code for Nyíregyháza.")) + setattr(cls, "HU-PE", + PermissibleValue( + text="HU-PE", + description="Region code for Pest.")) + setattr(cls, "HU-PS", + PermissibleValue( + text="HU-PS", + description="Region code for Pécs.")) + setattr(cls, "HU-SD", + PermissibleValue( + text="HU-SD", + description="Region code for Szeged.")) + setattr(cls, "HU-SF", + PermissibleValue( + text="HU-SF", + description="Region code for Székesfehérvár.")) + setattr(cls, "HU-SH", + PermissibleValue( + text="HU-SH", + description="Region code for Szombathely.")) + setattr(cls, "HU-SK", + PermissibleValue( + text="HU-SK", + description="Region code for Szolnok.")) + setattr(cls, "HU-SN", + PermissibleValue( + text="HU-SN", + description="Region code for Sopron.")) + setattr(cls, "HU-SO", + PermissibleValue( + text="HU-SO", + description="Region code for Somogy.")) + setattr(cls, "HU-SS", + PermissibleValue( + text="HU-SS", + description="Region code for Szekszárd.")) + setattr(cls, "HU-ST", + PermissibleValue( + text="HU-ST", + description="Region code for Salgótarján.")) + setattr(cls, "HU-SZ", + PermissibleValue( + text="HU-SZ", + description="Region code for Szabolcs-Szatmár-Bereg.")) + setattr(cls, "HU-TB", + PermissibleValue( + text="HU-TB", + description="Region code for Tatabánya.")) + setattr(cls, "HU-TO", + PermissibleValue( + text="HU-TO", + description="Region code for Tolna.")) + setattr(cls, "HU-VA", + PermissibleValue( + text="HU-VA", + description="Region code for Vas.")) + setattr(cls, "HU-VE", + PermissibleValue( + text="HU-VE", + description="Region code for Veszprém.")) + setattr(cls, "HU-VM", + PermissibleValue( + text="HU-VM", + description="Region code for Veszprém.")) + setattr(cls, "HU-ZA", + PermissibleValue( + text="HU-ZA", + description="Region code for Zala.")) + setattr(cls, "HU-ZE", + PermissibleValue( + text="HU-ZE", + description="Region code for Zalaegerszeg.")) + setattr(cls, "ID-AC", + PermissibleValue( + text="ID-AC", + description="Region code for Aceh.")) + setattr(cls, "ID-BA", + PermissibleValue( + text="ID-BA", + description="Region code for Bali.")) + setattr(cls, "ID-BB", + PermissibleValue( + text="ID-BB", + description="Region code for Kepulauan Bangka Belitung.")) + setattr(cls, "ID-BE", + PermissibleValue( + text="ID-BE", + description="Region code for Bengkulu.")) + setattr(cls, "ID-BT", + PermissibleValue( + text="ID-BT", + description="Region code for Banten.")) + setattr(cls, "ID-GO", + PermissibleValue( + text="ID-GO", + description="Region code for Gorontalo.")) + setattr(cls, "ID-JA", + PermissibleValue( + text="ID-JA", + description="Region code for Jambi.")) + setattr(cls, "ID-JB", + PermissibleValue( + text="ID-JB", + description="Region code for Jawa Barat.")) + setattr(cls, "ID-JI", + PermissibleValue( + text="ID-JI", + description="Region code for Jawa Timur.")) + setattr(cls, "ID-JK", + PermissibleValue( + text="ID-JK", + description="Region code for Jakarta Raya.")) + setattr(cls, "ID-JT", + PermissibleValue( + text="ID-JT", + description="Region code for Jawa Tengah.")) + setattr(cls, "ID-JW", + PermissibleValue( + text="ID-JW", + description="Region code for Jawa.")) + setattr(cls, "ID-KA", + PermissibleValue( + text="ID-KA", + description="Region code for Kalimantan.")) + setattr(cls, "ID-KB", + PermissibleValue( + text="ID-KB", + description="Region code for Kalimantan Barat.")) + setattr(cls, "ID-KI", + PermissibleValue( + text="ID-KI", + description="Region code for Kalimantan Timur.")) + setattr(cls, "ID-KR", + PermissibleValue( + text="ID-KR", + description="Region code for Kepulauan Riau.")) + setattr(cls, "ID-KS", + PermissibleValue( + text="ID-KS", + description="Region code for Kalimantan Selatan.")) + setattr(cls, "ID-KT", + PermissibleValue( + text="ID-KT", + description="Region code for Kalimantan Tengah.")) + setattr(cls, "ID-KU", + PermissibleValue( + text="ID-KU", + description="Region code for Kalimantan Utara.")) + setattr(cls, "ID-LA", + PermissibleValue( + text="ID-LA", + description="Region code for Lampung.")) + setattr(cls, "ID-MA", + PermissibleValue( + text="ID-MA", + description="Region code for Maluku.")) + setattr(cls, "ID-ML", + PermissibleValue( + text="ID-ML", + description="Region code for Maluku.")) + setattr(cls, "ID-MU", + PermissibleValue( + text="ID-MU", + description="Region code for Maluku Utara.")) + setattr(cls, "ID-NB", + PermissibleValue( + text="ID-NB", + description="Region code for Nusa Tenggara Barat.")) + setattr(cls, "ID-NT", + PermissibleValue( + text="ID-NT", + description="Region code for Nusa Tenggara Timur.")) + setattr(cls, "ID-NU", + PermissibleValue( + text="ID-NU", + description="Region code for Nusa Tenggara.")) + setattr(cls, "ID-PA", + PermissibleValue( + text="ID-PA", + description="Region code for Papua.")) + setattr(cls, "ID-PB", + PermissibleValue( + text="ID-PB", + description="Region code for Papua Barat.")) + setattr(cls, "ID-PD", + PermissibleValue( + text="ID-PD", + description="Region code for Papua Barat Daya.")) + setattr(cls, "ID-PE", + PermissibleValue( + text="ID-PE", + description="Region code for Papua Pengunungan.")) + setattr(cls, "ID-PP", + PermissibleValue( + text="ID-PP", + description="Region code for Papua.")) + setattr(cls, "ID-PS", + PermissibleValue( + text="ID-PS", + description="Region code for Papua Selatan.")) + setattr(cls, "ID-PT", + PermissibleValue( + text="ID-PT", + description="Region code for Papua Tengah.")) + setattr(cls, "ID-RI", + PermissibleValue( + text="ID-RI", + description="Region code for Riau.")) + setattr(cls, "ID-SA", + PermissibleValue( + text="ID-SA", + description="Region code for Sulawesi Utara.")) + setattr(cls, "ID-SB", + PermissibleValue( + text="ID-SB", + description="Region code for Sumatera Barat.")) + setattr(cls, "ID-SG", + PermissibleValue( + text="ID-SG", + description="Region code for Sulawesi Tenggara.")) + setattr(cls, "ID-SL", + PermissibleValue( + text="ID-SL", + description="Region code for Sulawesi.")) + setattr(cls, "ID-SM", + PermissibleValue( + text="ID-SM", + description="Region code for Sumatera.")) + setattr(cls, "ID-SN", + PermissibleValue( + text="ID-SN", + description="Region code for Sulawesi Selatan.")) + setattr(cls, "ID-SR", + PermissibleValue( + text="ID-SR", + description="Region code for Sulawesi Barat.")) + setattr(cls, "ID-SS", + PermissibleValue( + text="ID-SS", + description="Region code for Sumatera Selatan.")) + setattr(cls, "ID-ST", + PermissibleValue( + text="ID-ST", + description="Region code for Sulawesi Tengah.")) + setattr(cls, "ID-SU", + PermissibleValue( + text="ID-SU", + description="Region code for Sumatera Utara.")) + setattr(cls, "ID-YO", + PermissibleValue( + text="ID-YO", + description="Region code for Yogyakarta.")) + setattr(cls, "IE-C", + PermissibleValue( + text="IE-C", + description="Region code for Connaught.")) + setattr(cls, "IE-CE", + PermissibleValue( + text="IE-CE", + description="Region code for Clare.")) + setattr(cls, "IE-CN", + PermissibleValue( + text="IE-CN", + description="Region code for Cavan.")) + setattr(cls, "IE-CO", + PermissibleValue( + text="IE-CO", + description="Region code for Cork.")) + setattr(cls, "IE-CW", + PermissibleValue( + text="IE-CW", + description="Region code for Carlow.")) + setattr(cls, "IE-D", + PermissibleValue( + text="IE-D", + description="Region code for Dublin.")) + setattr(cls, "IE-DL", + PermissibleValue( + text="IE-DL", + description="Region code for Donegal.")) + setattr(cls, "IE-G", + PermissibleValue( + text="IE-G", + description="Region code for Galway.")) + setattr(cls, "IE-KE", + PermissibleValue( + text="IE-KE", + description="Region code for Kildare.")) + setattr(cls, "IE-KK", + PermissibleValue( + text="IE-KK", + description="Region code for Kilkenny.")) + setattr(cls, "IE-KY", + PermissibleValue( + text="IE-KY", + description="Region code for Kerry.")) + setattr(cls, "IE-L", + PermissibleValue( + text="IE-L", + description="Region code for Leinster.")) + setattr(cls, "IE-LD", + PermissibleValue( + text="IE-LD", + description="Region code for Longford.")) + setattr(cls, "IE-LH", + PermissibleValue( + text="IE-LH", + description="Region code for Louth.")) + setattr(cls, "IE-LK", + PermissibleValue( + text="IE-LK", + description="Region code for Limerick.")) + setattr(cls, "IE-LM", + PermissibleValue( + text="IE-LM", + description="Region code for Leitrim.")) + setattr(cls, "IE-LS", + PermissibleValue( + text="IE-LS", + description="Region code for Laois.")) + setattr(cls, "IE-M", + PermissibleValue( + text="IE-M", + description="Region code for Munster.")) + setattr(cls, "IE-MH", + PermissibleValue( + text="IE-MH", + description="Region code for Meath.")) + setattr(cls, "IE-MN", + PermissibleValue( + text="IE-MN", + description="Region code for Monaghan.")) + setattr(cls, "IE-MO", + PermissibleValue( + text="IE-MO", + description="Region code for Mayo.")) + setattr(cls, "IE-OY", + PermissibleValue( + text="IE-OY", + description="Region code for Offaly.")) + setattr(cls, "IE-RN", + PermissibleValue( + text="IE-RN", + description="Region code for Roscommon.")) + setattr(cls, "IE-SO", + PermissibleValue( + text="IE-SO", + description="Region code for Sligo.")) + setattr(cls, "IE-TA", + PermissibleValue( + text="IE-TA", + description="Region code for Tipperary.")) + setattr(cls, "IE-U", + PermissibleValue( + text="IE-U", + description="Region code for Ulster.")) + setattr(cls, "IE-WD", + PermissibleValue( + text="IE-WD", + description="Region code for Waterford.")) + setattr(cls, "IE-WH", + PermissibleValue( + text="IE-WH", + description="Region code for Westmeath.")) + setattr(cls, "IE-WW", + PermissibleValue( + text="IE-WW", + description="Region code for Wicklow.")) + setattr(cls, "IE-WX", + PermissibleValue( + text="IE-WX", + description="Region code for Wexford.")) + setattr(cls, "IL-D", + PermissibleValue( + text="IL-D", + description="Region code for Al Janūbī.")) + setattr(cls, "IL-HA", + PermissibleValue( + text="IL-HA", + description="Region code for Ḩayfā.")) + setattr(cls, "IL-JM", + PermissibleValue( + text="IL-JM", + description="Region code for Al Quds.")) + setattr(cls, "IL-M", + PermissibleValue( + text="IL-M", + description="Region code for Al Awsaţ.")) + setattr(cls, "IL-TA", + PermissibleValue( + text="IL-TA", + description="Region code for Tall Abīb.")) + setattr(cls, "IL-Z", + PermissibleValue( + text="IL-Z", + description="Region code for Ash Shamālī.")) + setattr(cls, "IN-AN", + PermissibleValue( + text="IN-AN", + description="Region code for Andaman and Nicobar Islands.")) + setattr(cls, "IN-AP", + PermissibleValue( + text="IN-AP", + description="Region code for Andhra Pradesh.")) + setattr(cls, "IN-AR", + PermissibleValue( + text="IN-AR", + description="Region code for Arunāchal Pradesh.")) + setattr(cls, "IN-AS", + PermissibleValue( + text="IN-AS", + description="Region code for Assam.")) + setattr(cls, "IN-BR", + PermissibleValue( + text="IN-BR", + description="Region code for Bihār.")) + setattr(cls, "IN-CG", + PermissibleValue( + text="IN-CG", + description="Region code for Chhattīsgarh.")) + setattr(cls, "IN-CH", + PermissibleValue( + text="IN-CH", + description="Region code for Chandīgarh.")) + setattr(cls, "IN-DH", + PermissibleValue( + text="IN-DH", + description="Region code for Dādra and Nagar Haveli and Damān and Diu.")) + setattr(cls, "IN-DL", + PermissibleValue( + text="IN-DL", + description="Region code for Delhi.")) + setattr(cls, "IN-GA", + PermissibleValue( + text="IN-GA", + description="Region code for Goa.")) + setattr(cls, "IN-GJ", + PermissibleValue( + text="IN-GJ", + description="Region code for Gujarāt.")) + setattr(cls, "IN-HP", + PermissibleValue( + text="IN-HP", + description="Region code for Himāchal Pradesh.")) + setattr(cls, "IN-HR", + PermissibleValue( + text="IN-HR", + description="Region code for Haryāna.")) + setattr(cls, "IN-JH", + PermissibleValue( + text="IN-JH", + description="Region code for Jhārkhand.")) + setattr(cls, "IN-JK", + PermissibleValue( + text="IN-JK", + description="Region code for Jammu and Kashmīr.")) + setattr(cls, "IN-KA", + PermissibleValue( + text="IN-KA", + description="Region code for Karnātaka.")) + setattr(cls, "IN-KL", + PermissibleValue( + text="IN-KL", + description="Region code for Kerala.")) + setattr(cls, "IN-LA", + PermissibleValue( + text="IN-LA", + description="Region code for Ladākh.")) + setattr(cls, "IN-LD", + PermissibleValue( + text="IN-LD", + description="Region code for Lakshadweep.")) + setattr(cls, "IN-MH", + PermissibleValue( + text="IN-MH", + description="Region code for Mahārāshtra.")) + setattr(cls, "IN-ML", + PermissibleValue( + text="IN-ML", + description="Region code for Meghālaya.")) + setattr(cls, "IN-MN", + PermissibleValue( + text="IN-MN", + description="Region code for Manipur.")) + setattr(cls, "IN-MP", + PermissibleValue( + text="IN-MP", + description="Region code for Madhya Pradesh.")) + setattr(cls, "IN-MZ", + PermissibleValue( + text="IN-MZ", + description="Region code for Mizoram.")) + setattr(cls, "IN-NL", + PermissibleValue( + text="IN-NL", + description="Region code for Nāgāland.")) + setattr(cls, "IN-OD", + PermissibleValue( + text="IN-OD", + description="Region code for Odisha.")) + setattr(cls, "IN-PB", + PermissibleValue( + text="IN-PB", + description="Region code for Punjab.")) + setattr(cls, "IN-PY", + PermissibleValue( + text="IN-PY", + description="Region code for Puducherry.")) + setattr(cls, "IN-RJ", + PermissibleValue( + text="IN-RJ", + description="Region code for Rājasthān.")) + setattr(cls, "IN-SK", + PermissibleValue( + text="IN-SK", + description="Region code for Sikkim.")) + setattr(cls, "IN-TN", + PermissibleValue( + text="IN-TN", + description="Region code for Tamil Nādu.")) + setattr(cls, "IN-TR", + PermissibleValue( + text="IN-TR", + description="Region code for Tripura.")) + setattr(cls, "IN-TS", + PermissibleValue( + text="IN-TS", + description="Region code for Telangāna.")) + setattr(cls, "IN-UK", + PermissibleValue( + text="IN-UK", + description="Region code for Uttarākhand.")) + setattr(cls, "IN-UP", + PermissibleValue( + text="IN-UP", + description="Region code for Uttar Pradesh.")) + setattr(cls, "IN-WB", + PermissibleValue( + text="IN-WB", + description="Region code for West Bengal.")) + setattr(cls, "IQ-AN", + PermissibleValue( + text="IQ-AN", + description="Region code for Al Anbār.")) + setattr(cls, "IQ-AR", + PermissibleValue( + text="IQ-AR", + description="Region code for Arbīl.")) + setattr(cls, "IQ-BA", + PermissibleValue( + text="IQ-BA", + description="Region code for Al Başrah.")) + setattr(cls, "IQ-BB", + PermissibleValue( + text="IQ-BB", + description="Region code for Bābil.")) + setattr(cls, "IQ-BG", + PermissibleValue( + text="IQ-BG", + description="Region code for Baghdād.")) + setattr(cls, "IQ-DA", + PermissibleValue( + text="IQ-DA", + description="Region code for Dahūk.")) + setattr(cls, "IQ-DI", + PermissibleValue( + text="IQ-DI", + description="Region code for Diyālá.")) + setattr(cls, "IQ-DQ", + PermissibleValue( + text="IQ-DQ", + description="Region code for Dhī Qār.")) + setattr(cls, "IQ-KA", + PermissibleValue( + text="IQ-KA", + description="Region code for Karbalā’.")) + setattr(cls, "IQ-KI", + PermissibleValue( + text="IQ-KI", + description="Region code for Kirkūk.")) + setattr(cls, "IQ-KR", + PermissibleValue( + text="IQ-KR", + description="Region code for Iqlīm Kūrdistān.")) + setattr(cls, "IQ-MA", + PermissibleValue( + text="IQ-MA", + description="Region code for Maysān.")) + setattr(cls, "IQ-MU", + PermissibleValue( + text="IQ-MU", + description="Region code for Al Muthanná.")) + setattr(cls, "IQ-NA", + PermissibleValue( + text="IQ-NA", + description="Region code for An Najaf.")) + setattr(cls, "IQ-NI", + PermissibleValue( + text="IQ-NI", + description="Region code for Nīnawá.")) + setattr(cls, "IQ-QA", + PermissibleValue( + text="IQ-QA", + description="Region code for Al Qādisīyah.")) + setattr(cls, "IQ-SD", + PermissibleValue( + text="IQ-SD", + description="Region code for Şalāḩ ad Dīn.")) + setattr(cls, "IQ-SU", + PermissibleValue( + text="IQ-SU", + description="Region code for As Sulaymānīyah.")) + setattr(cls, "IQ-WA", + PermissibleValue( + text="IQ-WA", + description="Region code for Wāsiţ.")) + setattr(cls, "IR-00", + PermissibleValue( + text="IR-00", + description="Region code for Markazī.")) + setattr(cls, "IR-01", + PermissibleValue( + text="IR-01", + description="Region code for Gīlān.")) + setattr(cls, "IR-02", + PermissibleValue( + text="IR-02", + description="Region code for Māzandarān.")) + setattr(cls, "IR-03", + PermissibleValue( + text="IR-03", + description="Region code for Āz̄ārbāyjān-e Shārqī.")) + setattr(cls, "IR-04", + PermissibleValue( + text="IR-04", + description="Region code for Āz̄ārbāyjān-e Ghārbī.")) + setattr(cls, "IR-05", + PermissibleValue( + text="IR-05", + description="Region code for Kermānshāh.")) + setattr(cls, "IR-06", + PermissibleValue( + text="IR-06", + description="Region code for Khūzestān.")) + setattr(cls, "IR-07", + PermissibleValue( + text="IR-07", + description="Region code for Fārs.")) + setattr(cls, "IR-08", + PermissibleValue( + text="IR-08", + description="Region code for Kermān.")) + setattr(cls, "IR-09", + PermissibleValue( + text="IR-09", + description="Region code for Khorāsān-e Raẕavī.")) + setattr(cls, "IR-10", + PermissibleValue( + text="IR-10", + description="Region code for Eşfahān.")) + setattr(cls, "IR-11", + PermissibleValue( + text="IR-11", + description="Region code for Sīstān va Balūchestān.")) + setattr(cls, "IR-12", + PermissibleValue( + text="IR-12", + description="Region code for Kordestān.")) + setattr(cls, "IR-13", + PermissibleValue( + text="IR-13", + description="Region code for Hamadān.")) + setattr(cls, "IR-14", + PermissibleValue( + text="IR-14", + description="Region code for Chahār Maḩāl va Bakhtīārī.")) + setattr(cls, "IR-15", + PermissibleValue( + text="IR-15", + description="Region code for Lorestān.")) + setattr(cls, "IR-16", + PermissibleValue( + text="IR-16", + description="Region code for Īlām.")) + setattr(cls, "IR-17", + PermissibleValue( + text="IR-17", + description="Region code for Kohgīlūyeh va Bowyer Aḩmad.")) + setattr(cls, "IR-18", + PermissibleValue( + text="IR-18", + description="Region code for Būshehr.")) + setattr(cls, "IR-19", + PermissibleValue( + text="IR-19", + description="Region code for Zanjān.")) + setattr(cls, "IR-20", + PermissibleValue( + text="IR-20", + description="Region code for Semnān.")) + setattr(cls, "IR-21", + PermissibleValue( + text="IR-21", + description="Region code for Yazd.")) + setattr(cls, "IR-22", + PermissibleValue( + text="IR-22", + description="Region code for Hormozgān.")) + setattr(cls, "IR-23", + PermissibleValue( + text="IR-23", + description="Region code for Tehrān.")) + setattr(cls, "IR-24", + PermissibleValue( + text="IR-24", + description="Region code for Ardabīl.")) + setattr(cls, "IR-25", + PermissibleValue( + text="IR-25", + description="Region code for Qom.")) + setattr(cls, "IR-26", + PermissibleValue( + text="IR-26", + description="Region code for Qazvīn.")) + setattr(cls, "IR-27", + PermissibleValue( + text="IR-27", + description="Region code for Golestān.")) + setattr(cls, "IR-28", + PermissibleValue( + text="IR-28", + description="Region code for Khorāsān-e Shomālī.")) + setattr(cls, "IR-29", + PermissibleValue( + text="IR-29", + description="Region code for Khorāsān-e Jonūbī.")) + setattr(cls, "IR-30", + PermissibleValue( + text="IR-30", + description="Region code for Alborz.")) + setattr(cls, "IS-1", + PermissibleValue( + text="IS-1", + description="Region code for Höfuðborgarsvæði.")) + setattr(cls, "IS-2", + PermissibleValue( + text="IS-2", + description="Region code for Suðurnes.")) + setattr(cls, "IS-3", + PermissibleValue( + text="IS-3", + description="Region code for Vesturland.")) + setattr(cls, "IS-4", + PermissibleValue( + text="IS-4", + description="Region code for Vestfirðir.")) + setattr(cls, "IS-5", + PermissibleValue( + text="IS-5", + description="Region code for Norðurland vestra.")) + setattr(cls, "IS-6", + PermissibleValue( + text="IS-6", + description="Region code for Norðurland eystra.")) + setattr(cls, "IS-7", + PermissibleValue( + text="IS-7", + description="Region code for Austurland.")) + setattr(cls, "IS-8", + PermissibleValue( + text="IS-8", + description="Region code for Suðurland.")) + setattr(cls, "IS-AKN", + PermissibleValue( + text="IS-AKN", + description="Region code for Akraneskaupstaður.")) + setattr(cls, "IS-AKU", + PermissibleValue( + text="IS-AKU", + description="Region code for Akureyrarbær.")) + setattr(cls, "IS-ARN", + PermissibleValue( + text="IS-ARN", + description="Region code for Árneshreppur.")) + setattr(cls, "IS-ASA", + PermissibleValue( + text="IS-ASA", + description="Region code for Ásahreppur.")) + setattr(cls, "IS-BLA", + PermissibleValue( + text="IS-BLA", + description="Region code for Bláskógabyggð.")) + setattr(cls, "IS-BOG", + PermissibleValue( + text="IS-BOG", + description="Region code for Borgarbyggð.")) + setattr(cls, "IS-BOL", + PermissibleValue( + text="IS-BOL", + description="Region code for Bolungarvíkurkaupstaður.")) + setattr(cls, "IS-DAB", + PermissibleValue( + text="IS-DAB", + description="Region code for Dalabyggð.")) + setattr(cls, "IS-DAV", + PermissibleValue( + text="IS-DAV", + description="Region code for Dalvíkurbyggð.")) + setattr(cls, "IS-EOM", + PermissibleValue( + text="IS-EOM", + description="Region code for Eyja- og Miklaholtshreppur.")) + setattr(cls, "IS-EYF", + PermissibleValue( + text="IS-EYF", + description="Region code for Eyjafjarðarsveit.")) + setattr(cls, "IS-FJD", + PermissibleValue( + text="IS-FJD", + description="Region code for Fjarðabyggð.")) + setattr(cls, "IS-FJL", + PermissibleValue( + text="IS-FJL", + description="Region code for Fjallabyggð.")) + setattr(cls, "IS-FLA", + PermissibleValue( + text="IS-FLA", + description="Region code for Flóahreppur.")) + setattr(cls, "IS-FLR", + PermissibleValue( + text="IS-FLR", + description="Region code for Fljótsdalshreppur.")) + setattr(cls, "IS-GAR", + PermissibleValue( + text="IS-GAR", + description="Region code for Garðabær.")) + setattr(cls, "IS-GOG", + PermissibleValue( + text="IS-GOG", + description="Region code for Grímsnes- og Grafningshreppur.")) + setattr(cls, "IS-GRN", + PermissibleValue( + text="IS-GRN", + description="Region code for Grindavíkurbær.")) + setattr(cls, "IS-GRU", + PermissibleValue( + text="IS-GRU", + description="Region code for Grundarfjarðarbær.")) + setattr(cls, "IS-GRY", + PermissibleValue( + text="IS-GRY", + description="Region code for Grýtubakkahreppur.")) + setattr(cls, "IS-HAF", + PermissibleValue( + text="IS-HAF", + description="Region code for Hafnarfjarðarkaupstaður.")) + setattr(cls, "IS-HRG", + PermissibleValue( + text="IS-HRG", + description="Region code for Hörgársveit.")) + setattr(cls, "IS-HRU", + PermissibleValue( + text="IS-HRU", + description="Region code for Hrunamannahreppur.")) + setattr(cls, "IS-HUG", + PermissibleValue( + text="IS-HUG", + description="Region code for Húnabyggð.")) + setattr(cls, "IS-HUV", + PermissibleValue( + text="IS-HUV", + description="Region code for Húnaþing vestra.")) + setattr(cls, "IS-HVA", + PermissibleValue( + text="IS-HVA", + description="Region code for Hvalfjarðarsveit.")) + setattr(cls, "IS-HVE", + PermissibleValue( + text="IS-HVE", + description="Region code for Hveragerðisbær.")) + setattr(cls, "IS-ISA", + PermissibleValue( + text="IS-ISA", + description="Region code for Ísafjarðarbær.")) + setattr(cls, "IS-KAL", + PermissibleValue( + text="IS-KAL", + description="Region code for Kaldrananeshreppur.")) + setattr(cls, "IS-KJO", + PermissibleValue( + text="IS-KJO", + description="Region code for Kjósarhreppur.")) + setattr(cls, "IS-KOP", + PermissibleValue( + text="IS-KOP", + description="Region code for Kópavogsbær.")) + setattr(cls, "IS-LAN", + PermissibleValue( + text="IS-LAN", + description="Region code for Langanesbyggð.")) + setattr(cls, "IS-MOS", + PermissibleValue( + text="IS-MOS", + description="Region code for Mosfellsbær.")) + setattr(cls, "IS-MUL", + PermissibleValue( + text="IS-MUL", + description="Region code for Múlaþing.")) + setattr(cls, "IS-MYR", + PermissibleValue( + text="IS-MYR", + description="Region code for Mýrdalshreppur.")) + setattr(cls, "IS-NOR", + PermissibleValue( + text="IS-NOR", + description="Region code for Norðurþing.")) + setattr(cls, "IS-RGE", + PermissibleValue( + text="IS-RGE", + description="Region code for Rangárþing eystra.")) + setattr(cls, "IS-RGY", + PermissibleValue( + text="IS-RGY", + description="Region code for Rangárþing ytra.")) + setattr(cls, "IS-RHH", + PermissibleValue( + text="IS-RHH", + description="Region code for Reykhólahreppur.")) + setattr(cls, "IS-RKN", + PermissibleValue( + text="IS-RKN", + description="Region code for Reykjanesbær.")) + setattr(cls, "IS-RKV", + PermissibleValue( + text="IS-RKV", + description="Region code for Reykjavíkurborg.")) + setattr(cls, "IS-SBT", + PermissibleValue( + text="IS-SBT", + description="Region code for Svalbarðsstrandarhreppur.")) + setattr(cls, "IS-SDN", + PermissibleValue( + text="IS-SDN", + description="Region code for Suðurnesjabær.")) + setattr(cls, "IS-SDV", + PermissibleValue( + text="IS-SDV", + description="Region code for Súðavíkurhreppur.")) + setattr(cls, "IS-SEL", + PermissibleValue( + text="IS-SEL", + description="Region code for Seltjarnarnesbær.")) + setattr(cls, "IS-SFA", + PermissibleValue( + text="IS-SFA", + description="Region code for Sveitarfélagið Árborg.")) + setattr(cls, "IS-SHF", + PermissibleValue( + text="IS-SHF", + description="Region code for Sveitarfélagið Hornafjörður.")) + setattr(cls, "IS-SKF", + PermissibleValue( + text="IS-SKF", + description="Region code for Skaftárhreppur.")) + setattr(cls, "IS-SKG", + PermissibleValue( + text="IS-SKG", + description="Region code for Skagabyggð.")) + setattr(cls, "IS-SKO", + PermissibleValue( + text="IS-SKO", + description="Region code for Skorradalshreppur.")) + setattr(cls, "IS-SKR", + PermissibleValue( + text="IS-SKR", + description="Region code for Skagafjörður.")) + setattr(cls, "IS-SNF", + PermissibleValue( + text="IS-SNF", + description="Region code for Snæfellsbær.")) + setattr(cls, "IS-SOG", + PermissibleValue( + text="IS-SOG", + description="Region code for Skeiða- og Gnúpverjahreppur.")) + setattr(cls, "IS-SOL", + PermissibleValue( + text="IS-SOL", + description="Region code for Sveitarfélagið Ölfus.")) + setattr(cls, "IS-SSS", + PermissibleValue( + text="IS-SSS", + description="Region code for Sveitarfélagið Skagaströnd.")) + setattr(cls, "IS-STR", + PermissibleValue( + text="IS-STR", + description="Region code for Strandabyggð.")) + setattr(cls, "IS-STY", + PermissibleValue( + text="IS-STY", + description="Region code for Stykkishólmsbær.")) + setattr(cls, "IS-SVG", + PermissibleValue( + text="IS-SVG", + description="Region code for Sveitarfélagið Vogar.")) + setattr(cls, "IS-TAL", + PermissibleValue( + text="IS-TAL", + description="Region code for Tálknafjarðarhreppur.")) + setattr(cls, "IS-THG", + PermissibleValue( + text="IS-THG", + description="Region code for Þingeyjarsveit.")) + setattr(cls, "IS-TJO", + PermissibleValue( + text="IS-TJO", + description="Region code for Tjörneshreppur.")) + setattr(cls, "IS-VEM", + PermissibleValue( + text="IS-VEM", + description="Region code for Vestmannaeyjabær.")) + setattr(cls, "IS-VER", + PermissibleValue( + text="IS-VER", + description="Region code for Vesturbyggð.")) + setattr(cls, "IS-VOP", + PermissibleValue( + text="IS-VOP", + description="Region code for Vopnafjarðarhreppur.")) + setattr(cls, "IT-21", + PermissibleValue( + text="IT-21", + description="Region code for Piemonte.")) + setattr(cls, "IT-23", + PermissibleValue( + text="IT-23", + description="Region code for Val d'Aoste.")) + setattr(cls, "IT-25", + PermissibleValue( + text="IT-25", + description="Region code for Lombardia.")) + setattr(cls, "IT-32", + PermissibleValue( + text="IT-32", + description="Region code for Trentino-Südtirol.")) + setattr(cls, "IT-34", + PermissibleValue( + text="IT-34", + description="Region code for Veneto.")) + setattr(cls, "IT-36", + PermissibleValue( + text="IT-36", + description="Region code for Friuli Venezia Giulia.")) + setattr(cls, "IT-42", + PermissibleValue( + text="IT-42", + description="Region code for Liguria.")) + setattr(cls, "IT-45", + PermissibleValue( + text="IT-45", + description="Region code for Emilia-Romagna.")) + setattr(cls, "IT-52", + PermissibleValue( + text="IT-52", + description="Region code for Toscana.")) + setattr(cls, "IT-55", + PermissibleValue( + text="IT-55", + description="Region code for Umbria.")) + setattr(cls, "IT-57", + PermissibleValue( + text="IT-57", + description="Region code for Marche.")) + setattr(cls, "IT-62", + PermissibleValue( + text="IT-62", + description="Region code for Lazio.")) + setattr(cls, "IT-65", + PermissibleValue( + text="IT-65", + description="Region code for Abruzzo.")) + setattr(cls, "IT-67", + PermissibleValue( + text="IT-67", + description="Region code for Molise.")) + setattr(cls, "IT-72", + PermissibleValue( + text="IT-72", + description="Region code for Campania.")) + setattr(cls, "IT-75", + PermissibleValue( + text="IT-75", + description="Region code for Puglia.")) + setattr(cls, "IT-77", + PermissibleValue( + text="IT-77", + description="Region code for Basilicata.")) + setattr(cls, "IT-78", + PermissibleValue( + text="IT-78", + description="Region code for Calabria.")) + setattr(cls, "IT-82", + PermissibleValue( + text="IT-82", + description="Region code for Sicilia.")) + setattr(cls, "IT-88", + PermissibleValue( + text="IT-88", + description="Region code for Sardegna.")) + setattr(cls, "IT-AG", + PermissibleValue( + text="IT-AG", + description="Region code for Agrigento.")) + setattr(cls, "IT-AL", + PermissibleValue( + text="IT-AL", + description="Region code for Alessandria.")) + setattr(cls, "IT-AN", + PermissibleValue( + text="IT-AN", + description="Region code for Ancona.")) + setattr(cls, "IT-AP", + PermissibleValue( + text="IT-AP", + description="Region code for Ascoli Piceno.")) + setattr(cls, "IT-AQ", + PermissibleValue( + text="IT-AQ", + description="Region code for L'Aquila.")) + setattr(cls, "IT-AR", + PermissibleValue( + text="IT-AR", + description="Region code for Arezzo.")) + setattr(cls, "IT-AT", + PermissibleValue( + text="IT-AT", + description="Region code for Asti.")) + setattr(cls, "IT-AV", + PermissibleValue( + text="IT-AV", + description="Region code for Avellino.")) + setattr(cls, "IT-BA", + PermissibleValue( + text="IT-BA", + description="Region code for Bari.")) + setattr(cls, "IT-BG", + PermissibleValue( + text="IT-BG", + description="Region code for Bergamo.")) + setattr(cls, "IT-BI", + PermissibleValue( + text="IT-BI", + description="Region code for Biella.")) + setattr(cls, "IT-BL", + PermissibleValue( + text="IT-BL", + description="Region code for Belluno.")) + setattr(cls, "IT-BN", + PermissibleValue( + text="IT-BN", + description="Region code for Benevento.")) + setattr(cls, "IT-BO", + PermissibleValue( + text="IT-BO", + description="Region code for Bologna.")) + setattr(cls, "IT-BR", + PermissibleValue( + text="IT-BR", + description="Region code for Brindisi.")) + setattr(cls, "IT-BS", + PermissibleValue( + text="IT-BS", + description="Region code for Brescia.")) + setattr(cls, "IT-BT", + PermissibleValue( + text="IT-BT", + description="Region code for Barletta-Andria-Trani.")) + setattr(cls, "IT-BZ", + PermissibleValue( + text="IT-BZ", + description="Region code for Bozen.")) + setattr(cls, "IT-CA", + PermissibleValue( + text="IT-CA", + description="Region code for Cagliari.")) + setattr(cls, "IT-CB", + PermissibleValue( + text="IT-CB", + description="Region code for Campobasso.")) + setattr(cls, "IT-CE", + PermissibleValue( + text="IT-CE", + description="Region code for Caserta.")) + setattr(cls, "IT-CH", + PermissibleValue( + text="IT-CH", + description="Region code for Chieti.")) + setattr(cls, "IT-CL", + PermissibleValue( + text="IT-CL", + description="Region code for Caltanissetta.")) + setattr(cls, "IT-CN", + PermissibleValue( + text="IT-CN", + description="Region code for Cuneo.")) + setattr(cls, "IT-CO", + PermissibleValue( + text="IT-CO", + description="Region code for Como.")) + setattr(cls, "IT-CR", + PermissibleValue( + text="IT-CR", + description="Region code for Cremona.")) + setattr(cls, "IT-CS", + PermissibleValue( + text="IT-CS", + description="Region code for Cosenza.")) + setattr(cls, "IT-CT", + PermissibleValue( + text="IT-CT", + description="Region code for Catania.")) + setattr(cls, "IT-CZ", + PermissibleValue( + text="IT-CZ", + description="Region code for Catanzaro.")) + setattr(cls, "IT-EN", + PermissibleValue( + text="IT-EN", + description="Region code for Enna.")) + setattr(cls, "IT-FC", + PermissibleValue( + text="IT-FC", + description="Region code for Forlì-Cesena.")) + setattr(cls, "IT-FE", + PermissibleValue( + text="IT-FE", + description="Region code for Ferrara.")) + setattr(cls, "IT-FG", + PermissibleValue( + text="IT-FG", + description="Region code for Foggia.")) + setattr(cls, "IT-FI", + PermissibleValue( + text="IT-FI", + description="Region code for Firenze.")) + setattr(cls, "IT-FM", + PermissibleValue( + text="IT-FM", + description="Region code for Fermo.")) + setattr(cls, "IT-FR", + PermissibleValue( + text="IT-FR", + description="Region code for Frosinone.")) + setattr(cls, "IT-GE", + PermissibleValue( + text="IT-GE", + description="Region code for Genova.")) + setattr(cls, "IT-GO", + PermissibleValue( + text="IT-GO", + description="Region code for Gorizia.")) + setattr(cls, "IT-GR", + PermissibleValue( + text="IT-GR", + description="Region code for Grosseto.")) + setattr(cls, "IT-IM", + PermissibleValue( + text="IT-IM", + description="Region code for Imperia.")) + setattr(cls, "IT-IS", + PermissibleValue( + text="IT-IS", + description="Region code for Isernia.")) + setattr(cls, "IT-KR", + PermissibleValue( + text="IT-KR", + description="Region code for Crotone.")) + setattr(cls, "IT-LC", + PermissibleValue( + text="IT-LC", + description="Region code for Lecco.")) + setattr(cls, "IT-LE", + PermissibleValue( + text="IT-LE", + description="Region code for Lecce.")) + setattr(cls, "IT-LI", + PermissibleValue( + text="IT-LI", + description="Region code for Livorno.")) + setattr(cls, "IT-LO", + PermissibleValue( + text="IT-LO", + description="Region code for Lodi.")) + setattr(cls, "IT-LT", + PermissibleValue( + text="IT-LT", + description="Region code for Latina.")) + setattr(cls, "IT-LU", + PermissibleValue( + text="IT-LU", + description="Region code for Lucca.")) + setattr(cls, "IT-MB", + PermissibleValue( + text="IT-MB", + description="Region code for Monza e Brianza.")) + setattr(cls, "IT-MC", + PermissibleValue( + text="IT-MC", + description="Region code for Macerata.")) + setattr(cls, "IT-ME", + PermissibleValue( + text="IT-ME", + description="Region code for Messina.")) + setattr(cls, "IT-MI", + PermissibleValue( + text="IT-MI", + description="Region code for Milano.")) + setattr(cls, "IT-MN", + PermissibleValue( + text="IT-MN", + description="Region code for Mantova.")) + setattr(cls, "IT-MO", + PermissibleValue( + text="IT-MO", + description="Region code for Modena.")) + setattr(cls, "IT-MS", + PermissibleValue( + text="IT-MS", + description="Region code for Massa-Carrara.")) + setattr(cls, "IT-MT", + PermissibleValue( + text="IT-MT", + description="Region code for Matera.")) + setattr(cls, "IT-NA", + PermissibleValue( + text="IT-NA", + description="Region code for Napoli.")) + setattr(cls, "IT-NO", + PermissibleValue( + text="IT-NO", + description="Region code for Novara.")) + setattr(cls, "IT-NU", + PermissibleValue( + text="IT-NU", + description="Region code for Nuoro.")) + setattr(cls, "IT-OR", + PermissibleValue( + text="IT-OR", + description="Region code for Oristano.")) + setattr(cls, "IT-PA", + PermissibleValue( + text="IT-PA", + description="Region code for Palermo.")) + setattr(cls, "IT-PC", + PermissibleValue( + text="IT-PC", + description="Region code for Piacenza.")) + setattr(cls, "IT-PD", + PermissibleValue( + text="IT-PD", + description="Region code for Padova.")) + setattr(cls, "IT-PE", + PermissibleValue( + text="IT-PE", + description="Region code for Pescara.")) + setattr(cls, "IT-PG", + PermissibleValue( + text="IT-PG", + description="Region code for Perugia.")) + setattr(cls, "IT-PI", + PermissibleValue( + text="IT-PI", + description="Region code for Pisa.")) + setattr(cls, "IT-PN", + PermissibleValue( + text="IT-PN", + description="Region code for Pordenone.")) + setattr(cls, "IT-PO", + PermissibleValue( + text="IT-PO", + description="Region code for Prato.")) + setattr(cls, "IT-PR", + PermissibleValue( + text="IT-PR", + description="Region code for Parma.")) + setattr(cls, "IT-PT", + PermissibleValue( + text="IT-PT", + description="Region code for Pistoia.")) + setattr(cls, "IT-PU", + PermissibleValue( + text="IT-PU", + description="Region code for Pesaro e Urbino.")) + setattr(cls, "IT-PV", + PermissibleValue( + text="IT-PV", + description="Region code for Pavia.")) + setattr(cls, "IT-PZ", + PermissibleValue( + text="IT-PZ", + description="Region code for Potenza.")) + setattr(cls, "IT-RA", + PermissibleValue( + text="IT-RA", + description="Region code for Ravenna.")) + setattr(cls, "IT-RC", + PermissibleValue( + text="IT-RC", + description="Region code for Reggio Calabria.")) + setattr(cls, "IT-RE", + PermissibleValue( + text="IT-RE", + description="Region code for Reggio Emilia.")) + setattr(cls, "IT-RG", + PermissibleValue( + text="IT-RG", + description="Region code for Ragusa.")) + setattr(cls, "IT-RI", + PermissibleValue( + text="IT-RI", + description="Region code for Rieti.")) + setattr(cls, "IT-RM", + PermissibleValue( + text="IT-RM", + description="Region code for Roma.")) + setattr(cls, "IT-RN", + PermissibleValue( + text="IT-RN", + description="Region code for Rimini.")) + setattr(cls, "IT-RO", + PermissibleValue( + text="IT-RO", + description="Region code for Rovigo.")) + setattr(cls, "IT-SA", + PermissibleValue( + text="IT-SA", + description="Region code for Salerno.")) + setattr(cls, "IT-SI", + PermissibleValue( + text="IT-SI", + description="Region code for Siena.")) + setattr(cls, "IT-SO", + PermissibleValue( + text="IT-SO", + description="Region code for Sondrio.")) + setattr(cls, "IT-SP", + PermissibleValue( + text="IT-SP", + description="Region code for La Spezia.")) + setattr(cls, "IT-SR", + PermissibleValue( + text="IT-SR", + description="Region code for Siracusa.")) + setattr(cls, "IT-SS", + PermissibleValue( + text="IT-SS", + description="Region code for Sassari.")) + setattr(cls, "IT-SU", + PermissibleValue( + text="IT-SU", + description="Region code for Sud Sardegna.")) + setattr(cls, "IT-SV", + PermissibleValue( + text="IT-SV", + description="Region code for Savona.")) + setattr(cls, "IT-TA", + PermissibleValue( + text="IT-TA", + description="Region code for Taranto.")) + setattr(cls, "IT-TE", + PermissibleValue( + text="IT-TE", + description="Region code for Teramo.")) + setattr(cls, "IT-TN", + PermissibleValue( + text="IT-TN", + description="Region code for Trento.")) + setattr(cls, "IT-TO", + PermissibleValue( + text="IT-TO", + description="Region code for Torino.")) + setattr(cls, "IT-TP", + PermissibleValue( + text="IT-TP", + description="Region code for Trapani.")) + setattr(cls, "IT-TR", + PermissibleValue( + text="IT-TR", + description="Region code for Terni.")) + setattr(cls, "IT-TS", + PermissibleValue( + text="IT-TS", + description="Region code for Trieste.")) + setattr(cls, "IT-TV", + PermissibleValue( + text="IT-TV", + description="Region code for Treviso.")) + setattr(cls, "IT-UD", + PermissibleValue( + text="IT-UD", + description="Region code for Udine.")) + setattr(cls, "IT-VA", + PermissibleValue( + text="IT-VA", + description="Region code for Varese.")) + setattr(cls, "IT-VB", + PermissibleValue( + text="IT-VB", + description="Region code for Verbano-Cusio-Ossola.")) + setattr(cls, "IT-VC", + PermissibleValue( + text="IT-VC", + description="Region code for Vercelli.")) + setattr(cls, "IT-VE", + PermissibleValue( + text="IT-VE", + description="Region code for Venezia.")) + setattr(cls, "IT-VI", + PermissibleValue( + text="IT-VI", + description="Region code for Vicenza.")) + setattr(cls, "IT-VR", + PermissibleValue( + text="IT-VR", + description="Region code for Verona.")) + setattr(cls, "IT-VT", + PermissibleValue( + text="IT-VT", + description="Region code for Viterbo.")) + setattr(cls, "IT-VV", + PermissibleValue( + text="IT-VV", + description="Region code for Vibo Valentia.")) + setattr(cls, "JM-01", + PermissibleValue( + text="JM-01", + description="Region code for Kingston.")) + setattr(cls, "JM-02", + PermissibleValue( + text="JM-02", + description="Region code for Saint Andrew.")) + setattr(cls, "JM-03", + PermissibleValue( + text="JM-03", + description="Region code for Saint Thomas.")) + setattr(cls, "JM-04", + PermissibleValue( + text="JM-04", + description="Region code for Portland.")) + setattr(cls, "JM-05", + PermissibleValue( + text="JM-05", + description="Region code for Saint Mary.")) + setattr(cls, "JM-06", + PermissibleValue( + text="JM-06", + description="Region code for Saint Ann.")) + setattr(cls, "JM-07", + PermissibleValue( + text="JM-07", + description="Region code for Trelawny.")) + setattr(cls, "JM-08", + PermissibleValue( + text="JM-08", + description="Region code for Saint James.")) + setattr(cls, "JM-09", + PermissibleValue( + text="JM-09", + description="Region code for Hanover.")) + setattr(cls, "JM-10", + PermissibleValue( + text="JM-10", + description="Region code for Westmoreland.")) + setattr(cls, "JM-11", + PermissibleValue( + text="JM-11", + description="Region code for Saint Elizabeth.")) + setattr(cls, "JM-12", + PermissibleValue( + text="JM-12", + description="Region code for Manchester.")) + setattr(cls, "JM-13", + PermissibleValue( + text="JM-13", + description="Region code for Clarendon.")) + setattr(cls, "JM-14", + PermissibleValue( + text="JM-14", + description="Region code for Saint Catherine.")) + setattr(cls, "JO-AJ", + PermissibleValue( + text="JO-AJ", + description="Region code for ‘Ajlūn.")) + setattr(cls, "JO-AM", + PermissibleValue( + text="JO-AM", + description="Region code for Al ‘A̅şimah.")) + setattr(cls, "JO-AQ", + PermissibleValue( + text="JO-AQ", + description="Region code for Al ‘Aqabah.")) + setattr(cls, "JO-AT", + PermissibleValue( + text="JO-AT", + description="Region code for Aţ Ţafīlah.")) + setattr(cls, "JO-AZ", + PermissibleValue( + text="JO-AZ", + description="Region code for Az Zarqā’.")) + setattr(cls, "JO-BA", + PermissibleValue( + text="JO-BA", + description="Region code for Al Balqā’.")) + setattr(cls, "JO-IR", + PermissibleValue( + text="JO-IR", + description="Region code for Irbid.")) + setattr(cls, "JO-JA", + PermissibleValue( + text="JO-JA", + description="Region code for Jarash.")) + setattr(cls, "JO-KA", + PermissibleValue( + text="JO-KA", + description="Region code for Al Karak.")) + setattr(cls, "JO-MA", + PermissibleValue( + text="JO-MA", + description="Region code for Al Mafraq.")) + setattr(cls, "JO-MD", + PermissibleValue( + text="JO-MD", + description="Region code for Mādabā.")) + setattr(cls, "JO-MN", + PermissibleValue( + text="JO-MN", + description="Region code for Ma‘ān.")) + setattr(cls, "JP-01", + PermissibleValue( + text="JP-01", + description="Region code for Hokkaido.")) + setattr(cls, "JP-02", + PermissibleValue( + text="JP-02", + description="Region code for Aomori.")) + setattr(cls, "JP-03", + PermissibleValue( + text="JP-03", + description="Region code for Iwate.")) + setattr(cls, "JP-04", + PermissibleValue( + text="JP-04", + description="Region code for Miyagi.")) + setattr(cls, "JP-05", + PermissibleValue( + text="JP-05", + description="Region code for Akita.")) + setattr(cls, "JP-06", + PermissibleValue( + text="JP-06", + description="Region code for Yamagata.")) + setattr(cls, "JP-07", + PermissibleValue( + text="JP-07", + description="Region code for Fukushima.")) + setattr(cls, "JP-08", + PermissibleValue( + text="JP-08", + description="Region code for Ibaraki.")) + setattr(cls, "JP-09", + PermissibleValue( + text="JP-09", + description="Region code for Tochigi.")) + setattr(cls, "JP-10", + PermissibleValue( + text="JP-10", + description="Region code for Gunma.")) + setattr(cls, "JP-11", + PermissibleValue( + text="JP-11", + description="Region code for Saitama.")) + setattr(cls, "JP-12", + PermissibleValue( + text="JP-12", + description="Region code for Chiba.")) + setattr(cls, "JP-13", + PermissibleValue( + text="JP-13", + description="Region code for Tokyo.")) + setattr(cls, "JP-14", + PermissibleValue( + text="JP-14", + description="Region code for Kanagawa.")) + setattr(cls, "JP-15", + PermissibleValue( + text="JP-15", + description="Region code for Niigata.")) + setattr(cls, "JP-16", + PermissibleValue( + text="JP-16", + description="Region code for Toyama.")) + setattr(cls, "JP-17", + PermissibleValue( + text="JP-17", + description="Region code for Ishikawa.")) + setattr(cls, "JP-18", + PermissibleValue( + text="JP-18", + description="Region code for Fukui.")) + setattr(cls, "JP-19", + PermissibleValue( + text="JP-19", + description="Region code for Yamanashi.")) + setattr(cls, "JP-20", + PermissibleValue( + text="JP-20", + description="Region code for Nagano.")) + setattr(cls, "JP-21", + PermissibleValue( + text="JP-21", + description="Region code for Gifu.")) + setattr(cls, "JP-22", + PermissibleValue( + text="JP-22", + description="Region code for Shizuoka.")) + setattr(cls, "JP-23", + PermissibleValue( + text="JP-23", + description="Region code for Aichi.")) + setattr(cls, "JP-24", + PermissibleValue( + text="JP-24", + description="Region code for Mie.")) + setattr(cls, "JP-25", + PermissibleValue( + text="JP-25", + description="Region code for Shiga.")) + setattr(cls, "JP-26", + PermissibleValue( + text="JP-26", + description="Region code for Kyoto.")) + setattr(cls, "JP-27", + PermissibleValue( + text="JP-27", + description="Region code for Osaka.")) + setattr(cls, "JP-28", + PermissibleValue( + text="JP-28", + description="Region code for Hyogo.")) + setattr(cls, "JP-29", + PermissibleValue( + text="JP-29", + description="Region code for Nara.")) + setattr(cls, "JP-30", + PermissibleValue( + text="JP-30", + description="Region code for Wakayama.")) + setattr(cls, "JP-31", + PermissibleValue( + text="JP-31", + description="Region code for Tottori.")) + setattr(cls, "JP-32", + PermissibleValue( + text="JP-32", + description="Region code for Shimane.")) + setattr(cls, "JP-33", + PermissibleValue( + text="JP-33", + description="Region code for Okayama.")) + setattr(cls, "JP-34", + PermissibleValue( + text="JP-34", + description="Region code for Hiroshima.")) + setattr(cls, "JP-35", + PermissibleValue( + text="JP-35", + description="Region code for Yamaguchi.")) + setattr(cls, "JP-36", + PermissibleValue( + text="JP-36", + description="Region code for Tokushima.")) + setattr(cls, "JP-37", + PermissibleValue( + text="JP-37", + description="Region code for Kagawa.")) + setattr(cls, "JP-38", + PermissibleValue( + text="JP-38", + description="Region code for Ehime.")) + setattr(cls, "JP-39", + PermissibleValue( + text="JP-39", + description="Region code for Kochi.")) + setattr(cls, "JP-40", + PermissibleValue( + text="JP-40", + description="Region code for Fukuoka.")) + setattr(cls, "JP-41", + PermissibleValue( + text="JP-41", + description="Region code for Saga.")) + setattr(cls, "JP-42", + PermissibleValue( + text="JP-42", + description="Region code for Nagasaki.")) + setattr(cls, "JP-43", + PermissibleValue( + text="JP-43", + description="Region code for Kumamoto.")) + setattr(cls, "JP-44", + PermissibleValue( + text="JP-44", + description="Region code for Oita.")) + setattr(cls, "JP-45", + PermissibleValue( + text="JP-45", + description="Region code for Miyazaki.")) + setattr(cls, "JP-46", + PermissibleValue( + text="JP-46", + description="Region code for Kagoshima.")) + setattr(cls, "JP-47", + PermissibleValue( + text="JP-47", + description="Region code for Okinawa.")) + setattr(cls, "KE-01", + PermissibleValue( + text="KE-01", + description="Region code for Baringo.")) + setattr(cls, "KE-02", + PermissibleValue( + text="KE-02", + description="Region code for Bomet.")) + setattr(cls, "KE-03", + PermissibleValue( + text="KE-03", + description="Region code for Bungoma.")) + setattr(cls, "KE-04", + PermissibleValue( + text="KE-04", + description="Region code for Busia.")) + setattr(cls, "KE-05", + PermissibleValue( + text="KE-05", + description="Region code for Elgeyo/Marakwet.")) + setattr(cls, "KE-06", + PermissibleValue( + text="KE-06", + description="Region code for Embu.")) + setattr(cls, "KE-07", + PermissibleValue( + text="KE-07", + description="Region code for Garissa.")) + setattr(cls, "KE-08", + PermissibleValue( + text="KE-08", + description="Region code for Homa Bay.")) + setattr(cls, "KE-09", + PermissibleValue( + text="KE-09", + description="Region code for Isiolo.")) + setattr(cls, "KE-10", + PermissibleValue( + text="KE-10", + description="Region code for Kajiado.")) + setattr(cls, "KE-11", + PermissibleValue( + text="KE-11", + description="Region code for Kakamega.")) + setattr(cls, "KE-12", + PermissibleValue( + text="KE-12", + description="Region code for Kericho.")) + setattr(cls, "KE-13", + PermissibleValue( + text="KE-13", + description="Region code for Kiambu.")) + setattr(cls, "KE-14", + PermissibleValue( + text="KE-14", + description="Region code for Kilifi.")) + setattr(cls, "KE-15", + PermissibleValue( + text="KE-15", + description="Region code for Kirinyaga.")) + setattr(cls, "KE-16", + PermissibleValue( + text="KE-16", + description="Region code for Kisii.")) + setattr(cls, "KE-17", + PermissibleValue( + text="KE-17", + description="Region code for Kisumu.")) + setattr(cls, "KE-18", + PermissibleValue( + text="KE-18", + description="Region code for Kitui.")) + setattr(cls, "KE-19", + PermissibleValue( + text="KE-19", + description="Region code for Kwale.")) + setattr(cls, "KE-20", + PermissibleValue( + text="KE-20", + description="Region code for Laikipia.")) + setattr(cls, "KE-21", + PermissibleValue( + text="KE-21", + description="Region code for Lamu.")) + setattr(cls, "KE-22", + PermissibleValue( + text="KE-22", + description="Region code for Machakos.")) + setattr(cls, "KE-23", + PermissibleValue( + text="KE-23", + description="Region code for Makueni.")) + setattr(cls, "KE-24", + PermissibleValue( + text="KE-24", + description="Region code for Mandera.")) + setattr(cls, "KE-25", + PermissibleValue( + text="KE-25", + description="Region code for Marsabit.")) + setattr(cls, "KE-26", + PermissibleValue( + text="KE-26", + description="Region code for Meru.")) + setattr(cls, "KE-27", + PermissibleValue( + text="KE-27", + description="Region code for Migori.")) + setattr(cls, "KE-28", + PermissibleValue( + text="KE-28", + description="Region code for Mombasa.")) + setattr(cls, "KE-29", + PermissibleValue( + text="KE-29", + description="Region code for Murang'a.")) + setattr(cls, "KE-30", + PermissibleValue( + text="KE-30", + description="Region code for Nairobi City.")) + setattr(cls, "KE-31", + PermissibleValue( + text="KE-31", + description="Region code for Nakuru.")) + setattr(cls, "KE-32", + PermissibleValue( + text="KE-32", + description="Region code for Nandi.")) + setattr(cls, "KE-33", + PermissibleValue( + text="KE-33", + description="Region code for Narok.")) + setattr(cls, "KE-34", + PermissibleValue( + text="KE-34", + description="Region code for Nyamira.")) + setattr(cls, "KE-35", + PermissibleValue( + text="KE-35", + description="Region code for Nyandarua.")) + setattr(cls, "KE-36", + PermissibleValue( + text="KE-36", + description="Region code for Nyeri.")) + setattr(cls, "KE-37", + PermissibleValue( + text="KE-37", + description="Region code for Samburu.")) + setattr(cls, "KE-38", + PermissibleValue( + text="KE-38", + description="Region code for Siaya.")) + setattr(cls, "KE-39", + PermissibleValue( + text="KE-39", + description="Region code for Taita/Taveta.")) + setattr(cls, "KE-40", + PermissibleValue( + text="KE-40", + description="Region code for Tana River.")) + setattr(cls, "KE-41", + PermissibleValue( + text="KE-41", + description="Region code for Tharaka-Nithi.")) + setattr(cls, "KE-42", + PermissibleValue( + text="KE-42", + description="Region code for Trans Nzoia.")) + setattr(cls, "KE-43", + PermissibleValue( + text="KE-43", + description="Region code for Turkana.")) + setattr(cls, "KE-44", + PermissibleValue( + text="KE-44", + description="Region code for Uasin Gishu.")) + setattr(cls, "KE-45", + PermissibleValue( + text="KE-45", + description="Region code for Vihiga.")) + setattr(cls, "KE-46", + PermissibleValue( + text="KE-46", + description="Region code for Wajir.")) + setattr(cls, "KE-47", + PermissibleValue( + text="KE-47", + description="Region code for West Pokot.")) + setattr(cls, "KG-B", + PermissibleValue( + text="KG-B", + description="Region code for Batken.")) + setattr(cls, "KG-C", + PermissibleValue( + text="KG-C", + description="Region code for Chüy.")) + setattr(cls, "KG-GB", + PermissibleValue( + text="KG-GB", + description="Region code for Bishkek Shaary.")) + setattr(cls, "KG-GO", + PermissibleValue( + text="KG-GO", + description="Region code for Osh Shaary.")) + setattr(cls, "KG-J", + PermissibleValue( + text="KG-J", + description="Region code for Jalal-Abad.")) + setattr(cls, "KG-N", + PermissibleValue( + text="KG-N", + description="Region code for Naryn.")) + setattr(cls, "KG-O", + PermissibleValue( + text="KG-O", + description="Region code for Osh.")) + setattr(cls, "KG-T", + PermissibleValue( + text="KG-T", + description="Region code for Talas.")) + setattr(cls, "KG-Y", + PermissibleValue( + text="KG-Y", + description="Region code for Ysyk-Köl.")) + setattr(cls, "KH-1", + PermissibleValue( + text="KH-1", + description="Region code for Banteay Mean Choăy.")) + setattr(cls, "KH-10", + PermissibleValue( + text="KH-10", + description="Region code for Krâchéh.")) + setattr(cls, "KH-11", + PermissibleValue( + text="KH-11", + description="Region code for Môndól Kiri.")) + setattr(cls, "KH-12", + PermissibleValue( + text="KH-12", + description="Region code for Phnum Pénh.")) + setattr(cls, "KH-13", + PermissibleValue( + text="KH-13", + description="Region code for Preăh Vihéar.")) + setattr(cls, "KH-14", + PermissibleValue( + text="KH-14", + description="Region code for Prey Vêng.")) + setattr(cls, "KH-15", + PermissibleValue( + text="KH-15", + description="Region code for Poŭthĭsăt.")) + setattr(cls, "KH-16", + PermissibleValue( + text="KH-16", + description="Region code for Rotanak Kiri.")) + setattr(cls, "KH-17", + PermissibleValue( + text="KH-17", + description="Region code for Siem Reab.")) + setattr(cls, "KH-18", + PermissibleValue( + text="KH-18", + description="Region code for Preăh Seihânŭ.")) + setattr(cls, "KH-19", + PermissibleValue( + text="KH-19", + description="Region code for Stoĕng Trêng.")) + setattr(cls, "KH-2", + PermissibleValue( + text="KH-2", + description="Region code for Baat Dambang.")) + setattr(cls, "KH-20", + PermissibleValue( + text="KH-20", + description="Region code for Svay Riĕng.")) + setattr(cls, "KH-21", + PermissibleValue( + text="KH-21", + description="Region code for Taakaev.")) + setattr(cls, "KH-22", + PermissibleValue( + text="KH-22", + description="Region code for Ŏtdâr Méan Choăy.")) + setattr(cls, "KH-23", + PermissibleValue( + text="KH-23", + description="Region code for Kaeb.")) + setattr(cls, "KH-24", + PermissibleValue( + text="KH-24", + description="Region code for Pailĭn.")) + setattr(cls, "KH-25", + PermissibleValue( + text="KH-25", + description="Region code for Tbong Khmum.")) + setattr(cls, "KH-3", + PermissibleValue( + text="KH-3", + description="Region code for Kampong Chaam.")) + setattr(cls, "KH-4", + PermissibleValue( + text="KH-4", + description="Region code for Kampong Chhnang.")) + setattr(cls, "KH-5", + PermissibleValue( + text="KH-5", + description="Region code for Kampong Spueu.")) + setattr(cls, "KH-6", + PermissibleValue( + text="KH-6", + description="Region code for Kâmpóng Thum.")) + setattr(cls, "KH-7", + PermissibleValue( + text="KH-7", + description="Region code for Kampot.")) + setattr(cls, "KH-8", + PermissibleValue( + text="KH-8", + description="Region code for Kandaal.")) + setattr(cls, "KH-9", + PermissibleValue( + text="KH-9", + description="Region code for Kaoh Kong.")) + setattr(cls, "KI-G", + PermissibleValue( + text="KI-G", + description="Region code for Gilbert Islands.")) + setattr(cls, "KI-L", + PermissibleValue( + text="KI-L", + description="Region code for Line Islands.")) + setattr(cls, "KI-P", + PermissibleValue( + text="KI-P", + description="Region code for Phoenix Islands.")) + setattr(cls, "KM-A", + PermissibleValue( + text="KM-A", + description="Region code for Ndzuwani.")) + setattr(cls, "KM-G", + PermissibleValue( + text="KM-G", + description="Region code for Ngazidja.")) + setattr(cls, "KM-M", + PermissibleValue( + text="KM-M", + description="Region code for Mwali.")) + setattr(cls, "KN-01", + PermissibleValue( + text="KN-01", + description="Region code for Christ Church Nichola Town.")) + setattr(cls, "KN-02", + PermissibleValue( + text="KN-02", + description="Region code for Saint Anne Sandy Point.")) + setattr(cls, "KN-03", + PermissibleValue( + text="KN-03", + description="Region code for Saint George Basseterre.")) + setattr(cls, "KN-04", + PermissibleValue( + text="KN-04", + description="Region code for Saint George Gingerland.")) + setattr(cls, "KN-05", + PermissibleValue( + text="KN-05", + description="Region code for Saint James Windward.")) + setattr(cls, "KN-06", + PermissibleValue( + text="KN-06", + description="Region code for Saint John Capisterre.")) + setattr(cls, "KN-07", + PermissibleValue( + text="KN-07", + description="Region code for Saint John Figtree.")) + setattr(cls, "KN-08", + PermissibleValue( + text="KN-08", + description="Region code for Saint Mary Cayon.")) + setattr(cls, "KN-09", + PermissibleValue( + text="KN-09", + description="Region code for Saint Paul Capisterre.")) + setattr(cls, "KN-10", + PermissibleValue( + text="KN-10", + description="Region code for Saint Paul Charlestown.")) + setattr(cls, "KN-11", + PermissibleValue( + text="KN-11", + description="Region code for Saint Peter Basseterre.")) + setattr(cls, "KN-12", + PermissibleValue( + text="KN-12", + description="Region code for Saint Thomas Lowland.")) + setattr(cls, "KN-13", + PermissibleValue( + text="KN-13", + description="Region code for Saint Thomas Middle Island.")) + setattr(cls, "KN-15", + PermissibleValue( + text="KN-15", + description="Region code for Trinity Palmetto Point.")) + setattr(cls, "KN-K", + PermissibleValue( + text="KN-K", + description="Region code for Saint Kitts.")) + setattr(cls, "KN-N", + PermissibleValue( + text="KN-N", + description="Region code for Nevis.")) + setattr(cls, "KP-01", + PermissibleValue( + text="KP-01", + description="Region code for P'yǒngyang.")) + setattr(cls, "KP-02", + PermissibleValue( + text="KP-02", + description="Region code for Phyeongannamto.")) + setattr(cls, "KP-03", + PermissibleValue( + text="KP-03", + description="Region code for P'yǒngan-bukto.")) + setattr(cls, "KP-04", + PermissibleValue( + text="KP-04", + description="Region code for Chagang-do.")) + setattr(cls, "KP-05", + PermissibleValue( + text="KP-05", + description="Region code for Hwanghae-namdo.")) + setattr(cls, "KP-06", + PermissibleValue( + text="KP-06", + description="Region code for Hwanghae-bukto.")) + setattr(cls, "KP-07", + PermissibleValue( + text="KP-07", + description="Region code for Kangweonto.")) + setattr(cls, "KP-08", + PermissibleValue( + text="KP-08", + description="Region code for Hamgyǒng-namdo.")) + setattr(cls, "KP-09", + PermissibleValue( + text="KP-09", + description="Region code for Hamkyeongpukto.")) + setattr(cls, "KP-10", + PermissibleValue( + text="KP-10", + description="Region code for Ryangkangto.")) + setattr(cls, "KP-13", + PermissibleValue( + text="KP-13", + description="Region code for Raseon.")) + setattr(cls, "KP-14", + PermissibleValue( + text="KP-14", + description="Region code for Namp’o.")) + setattr(cls, "KP-15", + PermissibleValue( + text="KP-15", + description="Region code for Kaesŏng.")) + setattr(cls, "KR-11", + PermissibleValue( + text="KR-11", + description="Region code for Seoul-teukbyeolsi.")) + setattr(cls, "KR-26", + PermissibleValue( + text="KR-26", + description="Region code for Busan-gwangyeoksi.")) + setattr(cls, "KR-27", + PermissibleValue( + text="KR-27", + description="Region code for Daegu-gwangyeoksi.")) + setattr(cls, "KR-28", + PermissibleValue( + text="KR-28", + description="Region code for Incheon-gwangyeoksi.")) + setattr(cls, "KR-29", + PermissibleValue( + text="KR-29", + description="Region code for Gwangju-gwangyeoksi.")) + setattr(cls, "KR-30", + PermissibleValue( + text="KR-30", + description="Region code for Daejeon-gwangyeoksi.")) + setattr(cls, "KR-31", + PermissibleValue( + text="KR-31", + description="Region code for Ulsan-gwangyeoksi.")) + setattr(cls, "KR-41", + PermissibleValue( + text="KR-41", + description="Region code for Gyeonggi-do.")) + setattr(cls, "KR-42", + PermissibleValue( + text="KR-42", + description="Region code for Gangwon-teukbyeoljachido.")) + setattr(cls, "KR-43", + PermissibleValue( + text="KR-43", + description="Region code for Chungcheongbuk-do.")) + setattr(cls, "KR-44", + PermissibleValue( + text="KR-44", + description="Region code for Chungcheongnam-do.")) + setattr(cls, "KR-45", + PermissibleValue( + text="KR-45", + description="Region code for Jeollabuk-do.")) + setattr(cls, "KR-46", + PermissibleValue( + text="KR-46", + description="Region code for Jeollanam-do.")) + setattr(cls, "KR-47", + PermissibleValue( + text="KR-47", + description="Region code for Gyeongsangbuk-do.")) + setattr(cls, "KR-48", + PermissibleValue( + text="KR-48", + description="Region code for Gyeongsangnam-do.")) + setattr(cls, "KR-49", + PermissibleValue( + text="KR-49", + description="Region code for Jeju-teukbyeoljachido.")) + setattr(cls, "KR-50", + PermissibleValue( + text="KR-50", + description="Region code for Sejong.")) + setattr(cls, "KW-AH", + PermissibleValue( + text="KW-AH", + description="Region code for Al Aḩmadī.")) + setattr(cls, "KW-FA", + PermissibleValue( + text="KW-FA", + description="Region code for Al Farwānīyah.")) + setattr(cls, "KW-HA", + PermissibleValue( + text="KW-HA", + description="Region code for Ḩawallī.")) + setattr(cls, "KW-JA", + PermissibleValue( + text="KW-JA", + description="Region code for Al Jahrā’.")) + setattr(cls, "KW-KU", + PermissibleValue( + text="KW-KU", + description="Region code for Al ‘Āşimah.")) + setattr(cls, "KW-MU", + PermissibleValue( + text="KW-MU", + description="Region code for Mubārak al Kabīr.")) + setattr(cls, "KZ-10", + PermissibleValue( + text="KZ-10", + description="Region code for Abay oblysy.")) + setattr(cls, "KZ-11", + PermissibleValue( + text="KZ-11", + description="Region code for Aqmola oblysy.")) + setattr(cls, "KZ-15", + PermissibleValue( + text="KZ-15", + description="Region code for Aqtöbe oblysy.")) + setattr(cls, "KZ-19", + PermissibleValue( + text="KZ-19", + description="Region code for Almaty oblysy.")) + setattr(cls, "KZ-23", + PermissibleValue( + text="KZ-23", + description="Region code for Atyraū oblysy.")) + setattr(cls, "KZ-27", + PermissibleValue( + text="KZ-27", + description="Region code for Batys Qazaqstan oblysy.")) + setattr(cls, "KZ-31", + PermissibleValue( + text="KZ-31", + description="Region code for Zhambyl oblysy.")) + setattr(cls, "KZ-33", + PermissibleValue( + text="KZ-33", + description="Region code for Zhetisū oblysy.")) + setattr(cls, "KZ-35", + PermissibleValue( + text="KZ-35", + description="Region code for Qaraghandy oblysy.")) + setattr(cls, "KZ-39", + PermissibleValue( + text="KZ-39", + description="Region code for Qostanay oblysy.")) + setattr(cls, "KZ-43", + PermissibleValue( + text="KZ-43", + description="Region code for Qyzylorda oblysy.")) + setattr(cls, "KZ-47", + PermissibleValue( + text="KZ-47", + description="Region code for Mangghystaū oblysy.")) + setattr(cls, "KZ-55", + PermissibleValue( + text="KZ-55", + description="Region code for Pavlodar oblysy.")) + setattr(cls, "KZ-59", + PermissibleValue( + text="KZ-59", + description="Region code for Soltüstik Qazaqstan oblysy.")) + setattr(cls, "KZ-61", + PermissibleValue( + text="KZ-61", + description="Region code for Türkistan oblysy.")) + setattr(cls, "KZ-62", + PermissibleValue( + text="KZ-62", + description="Region code for Ulytaū oblysy.")) + setattr(cls, "KZ-63", + PermissibleValue( + text="KZ-63", + description="Region code for Shyghys Qazaqstan oblysy.")) + setattr(cls, "KZ-71", + PermissibleValue( + text="KZ-71", + description="Region code for Astana.")) + setattr(cls, "KZ-75", + PermissibleValue( + text="KZ-75", + description="Region code for Almaty.")) + setattr(cls, "KZ-79", + PermissibleValue( + text="KZ-79", + description="Region code for Shymkent.")) + setattr(cls, "LA-AT", + PermissibleValue( + text="LA-AT", + description="Region code for Attapu.")) + setattr(cls, "LA-BK", + PermissibleValue( + text="LA-BK", + description="Region code for Bokèo.")) + setattr(cls, "LA-BL", + PermissibleValue( + text="LA-BL", + description="Region code for Bolikhamxai.")) + setattr(cls, "LA-CH", + PermissibleValue( + text="LA-CH", + description="Region code for Champasak.")) + setattr(cls, "LA-HO", + PermissibleValue( + text="LA-HO", + description="Region code for Houaphan.")) + setattr(cls, "LA-KH", + PermissibleValue( + text="LA-KH", + description="Region code for Khammouan.")) + setattr(cls, "LA-LM", + PermissibleValue( + text="LA-LM", + description="Region code for Louang Namtha.")) + setattr(cls, "LA-LP", + PermissibleValue( + text="LA-LP", + description="Region code for Louangphabang.")) + setattr(cls, "LA-OU", + PermissibleValue( + text="LA-OU", + description="Region code for Oudômxai.")) + setattr(cls, "LA-PH", + PermissibleValue( + text="LA-PH", + description="Region code for Phôngsali.")) + setattr(cls, "LA-SL", + PermissibleValue( + text="LA-SL", + description="Region code for Salavan.")) + setattr(cls, "LA-SV", + PermissibleValue( + text="LA-SV", + description="Region code for Savannakhét.")) + setattr(cls, "LA-VI", + PermissibleValue( + text="LA-VI", + description="Region code for Viangchan.")) + setattr(cls, "LA-VT", + PermissibleValue( + text="LA-VT", + description="Region code for Viangchan.")) + setattr(cls, "LA-XA", + PermissibleValue( + text="LA-XA", + description="Region code for Xaignabouli.")) + setattr(cls, "LA-XE", + PermissibleValue( + text="LA-XE", + description="Region code for Xékong.")) + setattr(cls, "LA-XI", + PermissibleValue( + text="LA-XI", + description="Region code for Xiangkhouang.")) + setattr(cls, "LA-XS", + PermissibleValue( + text="LA-XS", + description="Region code for Xaisômboun.")) + setattr(cls, "LB-AK", + PermissibleValue( + text="LB-AK", + description="Region code for ‘Akkār.")) + setattr(cls, "LB-AS", + PermissibleValue( + text="LB-AS", + description="Region code for Ash Shimāl.")) + setattr(cls, "LB-BA", + PermissibleValue( + text="LB-BA", + description="Region code for Bayrūt.")) + setattr(cls, "LB-BH", + PermissibleValue( + text="LB-BH", + description="Region code for B‘alabak-Al Hirmil.")) + setattr(cls, "LB-BI", + PermissibleValue( + text="LB-BI", + description="Region code for Béqaa.")) + setattr(cls, "LB-JA", + PermissibleValue( + text="LB-JA", + description="Region code for Al Janūb.")) + setattr(cls, "LB-JL", + PermissibleValue( + text="LB-JL", + description="Region code for Mont-Liban.")) + setattr(cls, "LB-NA", + PermissibleValue( + text="LB-NA", + description="Region code for Nabatîyé.")) + setattr(cls, "LC-01", + PermissibleValue( + text="LC-01", + description="Region code for Anse la Raye.")) + setattr(cls, "LC-02", + PermissibleValue( + text="LC-02", + description="Region code for Castries.")) + setattr(cls, "LC-03", + PermissibleValue( + text="LC-03", + description="Region code for Choiseul.")) + setattr(cls, "LC-05", + PermissibleValue( + text="LC-05", + description="Region code for Dennery.")) + setattr(cls, "LC-06", + PermissibleValue( + text="LC-06", + description="Region code for Gros Islet.")) + setattr(cls, "LC-07", + PermissibleValue( + text="LC-07", + description="Region code for Laborie.")) + setattr(cls, "LC-08", + PermissibleValue( + text="LC-08", + description="Region code for Micoud.")) + setattr(cls, "LC-10", + PermissibleValue( + text="LC-10", + description="Region code for Soufrière.")) + setattr(cls, "LC-11", + PermissibleValue( + text="LC-11", + description="Region code for Vieux Fort.")) + setattr(cls, "LC-12", + PermissibleValue( + text="LC-12", + description="Region code for Canaries.")) + setattr(cls, "LI-01", + PermissibleValue( + text="LI-01", + description="Region code for Balzers.")) + setattr(cls, "LI-02", + PermissibleValue( + text="LI-02", + description="Region code for Eschen.")) + setattr(cls, "LI-03", + PermissibleValue( + text="LI-03", + description="Region code for Gamprin.")) + setattr(cls, "LI-04", + PermissibleValue( + text="LI-04", + description="Region code for Mauren.")) + setattr(cls, "LI-05", + PermissibleValue( + text="LI-05", + description="Region code for Planken.")) + setattr(cls, "LI-06", + PermissibleValue( + text="LI-06", + description="Region code for Ruggell.")) + setattr(cls, "LI-07", + PermissibleValue( + text="LI-07", + description="Region code for Schaan.")) + setattr(cls, "LI-08", + PermissibleValue( + text="LI-08", + description="Region code for Schellenberg.")) + setattr(cls, "LI-09", + PermissibleValue( + text="LI-09", + description="Region code for Triesen.")) + setattr(cls, "LI-10", + PermissibleValue( + text="LI-10", + description="Region code for Triesenberg.")) + setattr(cls, "LI-11", + PermissibleValue( + text="LI-11", + description="Region code for Vaduz.")) + setattr(cls, "LK-1", + PermissibleValue( + text="LK-1", + description="Region code for Western Province.")) + setattr(cls, "LK-11", + PermissibleValue( + text="LK-11", + description="Region code for Colombo.")) + setattr(cls, "LK-12", + PermissibleValue( + text="LK-12", + description="Region code for Gampaha.")) + setattr(cls, "LK-13", + PermissibleValue( + text="LK-13", + description="Region code for Kalutara.")) + setattr(cls, "LK-2", + PermissibleValue( + text="LK-2", + description="Region code for Central Province.")) + setattr(cls, "LK-21", + PermissibleValue( + text="LK-21", + description="Region code for Kandy.")) + setattr(cls, "LK-22", + PermissibleValue( + text="LK-22", + description="Region code for Matale.")) + setattr(cls, "LK-23", + PermissibleValue( + text="LK-23", + description="Region code for Nuwara Eliya.")) + setattr(cls, "LK-3", + PermissibleValue( + text="LK-3", + description="Region code for Southern Province.")) + setattr(cls, "LK-31", + PermissibleValue( + text="LK-31", + description="Region code for Galle.")) + setattr(cls, "LK-32", + PermissibleValue( + text="LK-32", + description="Region code for Matara.")) + setattr(cls, "LK-33", + PermissibleValue( + text="LK-33", + description="Region code for Hambantota.")) + setattr(cls, "LK-4", + PermissibleValue( + text="LK-4", + description="Region code for Northern Province.")) + setattr(cls, "LK-41", + PermissibleValue( + text="LK-41", + description="Region code for Jaffna.")) + setattr(cls, "LK-42", + PermissibleValue( + text="LK-42", + description="Region code for Kilinochchi.")) + setattr(cls, "LK-43", + PermissibleValue( + text="LK-43", + description="Region code for Mannar.")) + setattr(cls, "LK-44", + PermissibleValue( + text="LK-44", + description="Region code for Vavuniya.")) + setattr(cls, "LK-45", + PermissibleValue( + text="LK-45", + description="Region code for Mullaittivu.")) + setattr(cls, "LK-5", + PermissibleValue( + text="LK-5", + description="Region code for Eastern Province.")) + setattr(cls, "LK-51", + PermissibleValue( + text="LK-51", + description="Region code for Batticaloa.")) + setattr(cls, "LK-52", + PermissibleValue( + text="LK-52", + description="Region code for Ampara.")) + setattr(cls, "LK-53", + PermissibleValue( + text="LK-53", + description="Region code for Trincomalee.")) + setattr(cls, "LK-6", + PermissibleValue( + text="LK-6", + description="Region code for North Western Province.")) + setattr(cls, "LK-61", + PermissibleValue( + text="LK-61", + description="Region code for Kurunegala.")) + setattr(cls, "LK-62", + PermissibleValue( + text="LK-62", + description="Region code for Puttalam.")) + setattr(cls, "LK-7", + PermissibleValue( + text="LK-7", + description="Region code for North Central Province.")) + setattr(cls, "LK-71", + PermissibleValue( + text="LK-71", + description="Region code for Anuradhapura.")) + setattr(cls, "LK-72", + PermissibleValue( + text="LK-72", + description="Region code for Polonnaruwa.")) + setattr(cls, "LK-8", + PermissibleValue( + text="LK-8", + description="Region code for Uva Province.")) + setattr(cls, "LK-81", + PermissibleValue( + text="LK-81", + description="Region code for Badulla.")) + setattr(cls, "LK-82", + PermissibleValue( + text="LK-82", + description="Region code for Monaragala.")) + setattr(cls, "LK-9", + PermissibleValue( + text="LK-9", + description="Region code for Sabaragamuwa Province.")) + setattr(cls, "LK-91", + PermissibleValue( + text="LK-91", + description="Region code for Ratnapura.")) + setattr(cls, "LK-92", + PermissibleValue( + text="LK-92", + description="Region code for Kegalla.")) + setattr(cls, "LR-BG", + PermissibleValue( + text="LR-BG", + description="Region code for Bong.")) + setattr(cls, "LR-BM", + PermissibleValue( + text="LR-BM", + description="Region code for Bomi.")) + setattr(cls, "LR-CM", + PermissibleValue( + text="LR-CM", + description="Region code for Grand Cape Mount.")) + setattr(cls, "LR-GB", + PermissibleValue( + text="LR-GB", + description="Region code for Grand Bassa.")) + setattr(cls, "LR-GG", + PermissibleValue( + text="LR-GG", + description="Region code for Grand Gedeh.")) + setattr(cls, "LR-GK", + PermissibleValue( + text="LR-GK", + description="Region code for Grand Kru.")) + setattr(cls, "LR-GP", + PermissibleValue( + text="LR-GP", + description="Region code for Gbarpolu.")) + setattr(cls, "LR-LO", + PermissibleValue( + text="LR-LO", + description="Region code for Lofa.")) + setattr(cls, "LR-MG", + PermissibleValue( + text="LR-MG", + description="Region code for Margibi.")) + setattr(cls, "LR-MO", + PermissibleValue( + text="LR-MO", + description="Region code for Montserrado.")) + setattr(cls, "LR-MY", + PermissibleValue( + text="LR-MY", + description="Region code for Maryland.")) + setattr(cls, "LR-NI", + PermissibleValue( + text="LR-NI", + description="Region code for Nimba.")) + setattr(cls, "LR-RG", + PermissibleValue( + text="LR-RG", + description="Region code for River Gee.")) + setattr(cls, "LR-RI", + PermissibleValue( + text="LR-RI", + description="Region code for River Cess.")) + setattr(cls, "LR-SI", + PermissibleValue( + text="LR-SI", + description="Region code for Sinoe.")) + setattr(cls, "LS-A", + PermissibleValue( + text="LS-A", + description="Region code for Maseru.")) + setattr(cls, "LS-B", + PermissibleValue( + text="LS-B", + description="Region code for Botha-Bothe.")) + setattr(cls, "LS-C", + PermissibleValue( + text="LS-C", + description="Region code for Leribe.")) + setattr(cls, "LS-D", + PermissibleValue( + text="LS-D", + description="Region code for Berea.")) + setattr(cls, "LS-E", + PermissibleValue( + text="LS-E", + description="Region code for Mafeteng.")) + setattr(cls, "LS-F", + PermissibleValue( + text="LS-F", + description="Region code for Mohale's Hoek.")) + setattr(cls, "LS-G", + PermissibleValue( + text="LS-G", + description="Region code for Quthing.")) + setattr(cls, "LS-H", + PermissibleValue( + text="LS-H", + description="Region code for Qacha's Nek.")) + setattr(cls, "LS-J", + PermissibleValue( + text="LS-J", + description="Region code for Mokhotlong.")) + setattr(cls, "LS-K", + PermissibleValue( + text="LS-K", + description="Region code for Thaba-Tseka.")) + setattr(cls, "LT-01", + PermissibleValue( + text="LT-01", + description="Region code for Akmenė.")) + setattr(cls, "LT-02", + PermissibleValue( + text="LT-02", + description="Region code for Alytaus miestas.")) + setattr(cls, "LT-03", + PermissibleValue( + text="LT-03", + description="Region code for Alytus.")) + setattr(cls, "LT-04", + PermissibleValue( + text="LT-04", + description="Region code for Anykščiai.")) + setattr(cls, "LT-05", + PermissibleValue( + text="LT-05", + description="Region code for Birštonas.")) + setattr(cls, "LT-06", + PermissibleValue( + text="LT-06", + description="Region code for Biržai.")) + setattr(cls, "LT-07", + PermissibleValue( + text="LT-07", + description="Region code for Druskininkai.")) + setattr(cls, "LT-08", + PermissibleValue( + text="LT-08", + description="Region code for Elektrėnai.")) + setattr(cls, "LT-09", + PermissibleValue( + text="LT-09", + description="Region code for Ignalina.")) + setattr(cls, "LT-10", + PermissibleValue( + text="LT-10", + description="Region code for Jonava.")) + setattr(cls, "LT-11", + PermissibleValue( + text="LT-11", + description="Region code for Joniškis.")) + setattr(cls, "LT-12", + PermissibleValue( + text="LT-12", + description="Region code for Jurbarkas.")) + setattr(cls, "LT-13", + PermissibleValue( + text="LT-13", + description="Region code for Kaišiadorys.")) + setattr(cls, "LT-14", + PermissibleValue( + text="LT-14", + description="Region code for Kalvarija.")) + setattr(cls, "LT-15", + PermissibleValue( + text="LT-15", + description="Region code for Kauno miestas.")) + setattr(cls, "LT-16", + PermissibleValue( + text="LT-16", + description="Region code for Kaunas.")) + setattr(cls, "LT-17", + PermissibleValue( + text="LT-17", + description="Region code for Kazlų Rūdos.")) + setattr(cls, "LT-18", + PermissibleValue( + text="LT-18", + description="Region code for Kėdainiai.")) + setattr(cls, "LT-19", + PermissibleValue( + text="LT-19", + description="Region code for Kelmė.")) + setattr(cls, "LT-20", + PermissibleValue( + text="LT-20", + description="Region code for Klaipėdos miestas.")) + setattr(cls, "LT-21", + PermissibleValue( + text="LT-21", + description="Region code for Klaipėda.")) + setattr(cls, "LT-22", + PermissibleValue( + text="LT-22", + description="Region code for Kretinga.")) + setattr(cls, "LT-23", + PermissibleValue( + text="LT-23", + description="Region code for Kupiškis.")) + setattr(cls, "LT-24", + PermissibleValue( + text="LT-24", + description="Region code for Lazdijai.")) + setattr(cls, "LT-25", + PermissibleValue( + text="LT-25", + description="Region code for Marijampolė.")) + setattr(cls, "LT-26", + PermissibleValue( + text="LT-26", + description="Region code for Mažeikiai.")) + setattr(cls, "LT-27", + PermissibleValue( + text="LT-27", + description="Region code for Molėtai.")) + setattr(cls, "LT-28", + PermissibleValue( + text="LT-28", + description="Region code for Neringa.")) + setattr(cls, "LT-29", + PermissibleValue( + text="LT-29", + description="Region code for Pagėgiai.")) + setattr(cls, "LT-30", + PermissibleValue( + text="LT-30", + description="Region code for Pakruojis.")) + setattr(cls, "LT-31", + PermissibleValue( + text="LT-31", + description="Region code for Palangos miestas.")) + setattr(cls, "LT-32", + PermissibleValue( + text="LT-32", + description="Region code for Panevėžio miestas.")) + setattr(cls, "LT-33", + PermissibleValue( + text="LT-33", + description="Region code for Panevėžys.")) + setattr(cls, "LT-34", + PermissibleValue( + text="LT-34", + description="Region code for Pasvalys.")) + setattr(cls, "LT-35", + PermissibleValue( + text="LT-35", + description="Region code for Plungė.")) + setattr(cls, "LT-36", + PermissibleValue( + text="LT-36", + description="Region code for Prienai.")) + setattr(cls, "LT-37", + PermissibleValue( + text="LT-37", + description="Region code for Radviliškis.")) + setattr(cls, "LT-38", + PermissibleValue( + text="LT-38", + description="Region code for Raseiniai.")) + setattr(cls, "LT-39", + PermissibleValue( + text="LT-39", + description="Region code for Rietavas.")) + setattr(cls, "LT-40", + PermissibleValue( + text="LT-40", + description="Region code for Rokiškis.")) + setattr(cls, "LT-41", + PermissibleValue( + text="LT-41", + description="Region code for Šakiai.")) + setattr(cls, "LT-42", + PermissibleValue( + text="LT-42", + description="Region code for Šalčininkai.")) + setattr(cls, "LT-43", + PermissibleValue( + text="LT-43", + description="Region code for Šiaulių miestas.")) + setattr(cls, "LT-44", + PermissibleValue( + text="LT-44", + description="Region code for Šiauliai.")) + setattr(cls, "LT-45", + PermissibleValue( + text="LT-45", + description="Region code for Šilalė.")) + setattr(cls, "LT-46", + PermissibleValue( + text="LT-46", + description="Region code for Šilutė.")) + setattr(cls, "LT-47", + PermissibleValue( + text="LT-47", + description="Region code for Širvintos.")) + setattr(cls, "LT-48", + PermissibleValue( + text="LT-48", + description="Region code for Skuodas.")) + setattr(cls, "LT-49", + PermissibleValue( + text="LT-49", + description="Region code for Švenčionys.")) + setattr(cls, "LT-50", + PermissibleValue( + text="LT-50", + description="Region code for Tauragė.")) + setattr(cls, "LT-51", + PermissibleValue( + text="LT-51", + description="Region code for Telšiai.")) + setattr(cls, "LT-52", + PermissibleValue( + text="LT-52", + description="Region code for Trakai.")) + setattr(cls, "LT-53", + PermissibleValue( + text="LT-53", + description="Region code for Ukmergė.")) + setattr(cls, "LT-54", + PermissibleValue( + text="LT-54", + description="Region code for Utena.")) + setattr(cls, "LT-55", + PermissibleValue( + text="LT-55", + description="Region code for Varėna.")) + setattr(cls, "LT-56", + PermissibleValue( + text="LT-56", + description="Region code for Vilkaviškis.")) + setattr(cls, "LT-57", + PermissibleValue( + text="LT-57", + description="Region code for Vilniaus miestas.")) + setattr(cls, "LT-58", + PermissibleValue( + text="LT-58", + description="Region code for Vilnius.")) + setattr(cls, "LT-59", + PermissibleValue( + text="LT-59", + description="Region code for Visaginas.")) + setattr(cls, "LT-60", + PermissibleValue( + text="LT-60", + description="Region code for Zarasai.")) + setattr(cls, "LT-AL", + PermissibleValue( + text="LT-AL", + description="Region code for Alytaus apskritis.")) + setattr(cls, "LT-KL", + PermissibleValue( + text="LT-KL", + description="Region code for Klaipėdos apskritis.")) + setattr(cls, "LT-KU", + PermissibleValue( + text="LT-KU", + description="Region code for Kauno apskritis.")) + setattr(cls, "LT-MR", + PermissibleValue( + text="LT-MR", + description="Region code for Marijampolės apskritis.")) + setattr(cls, "LT-PN", + PermissibleValue( + text="LT-PN", + description="Region code for Panevėžio apskritis.")) + setattr(cls, "LT-SA", + PermissibleValue( + text="LT-SA", + description="Region code for Šiaulių apskritis.")) + setattr(cls, "LT-TA", + PermissibleValue( + text="LT-TA", + description="Region code for Tauragės apskritis.")) + setattr(cls, "LT-TE", + PermissibleValue( + text="LT-TE", + description="Region code for Telšių apskritis.")) + setattr(cls, "LT-UT", + PermissibleValue( + text="LT-UT", + description="Region code for Utenos apskritis.")) + setattr(cls, "LT-VL", + PermissibleValue( + text="LT-VL", + description="Region code for Vilniaus apskritis.")) + setattr(cls, "LU-CA", + PermissibleValue( + text="LU-CA", + description="Region code for Capellen.")) + setattr(cls, "LU-CL", + PermissibleValue( + text="LU-CL", + description="Region code for Clerf.")) + setattr(cls, "LU-DI", + PermissibleValue( + text="LU-DI", + description="Region code for Diekirch.")) + setattr(cls, "LU-EC", + PermissibleValue( + text="LU-EC", + description="Region code for Echternach.")) + setattr(cls, "LU-ES", + PermissibleValue( + text="LU-ES", + description="Region code for Esch an der Alzette.")) + setattr(cls, "LU-GR", + PermissibleValue( + text="LU-GR", + description="Region code for Grevenmacher.")) + setattr(cls, "LU-LU", + PermissibleValue( + text="LU-LU", + description="Region code for Luxemburg.")) + setattr(cls, "LU-ME", + PermissibleValue( + text="LU-ME", + description="Region code for Mersch.")) + setattr(cls, "LU-RD", + PermissibleValue( + text="LU-RD", + description="Region code for Redingen.")) + setattr(cls, "LU-RM", + PermissibleValue( + text="LU-RM", + description="Region code for Remich.")) + setattr(cls, "LU-VD", + PermissibleValue( + text="LU-VD", + description="Region code for Vianden.")) + setattr(cls, "LU-WI", + PermissibleValue( + text="LU-WI", + description="Region code for Wiltz.")) + setattr(cls, "LV-002", + PermissibleValue( + text="LV-002", + description="Region code for Aizkraukles novads.")) + setattr(cls, "LV-007", + PermissibleValue( + text="LV-007", + description="Region code for Alūksnes novads.")) + setattr(cls, "LV-011", + PermissibleValue( + text="LV-011", + description="Region code for Ādažu novads.")) + setattr(cls, "LV-015", + PermissibleValue( + text="LV-015", + description="Region code for Balvu novads.")) + setattr(cls, "LV-016", + PermissibleValue( + text="LV-016", + description="Region code for Bauskas novads.")) + setattr(cls, "LV-022", + PermissibleValue( + text="LV-022", + description="Region code for Cēsu novads.")) + setattr(cls, "LV-026", + PermissibleValue( + text="LV-026", + description="Region code for Dobeles novads.")) + setattr(cls, "LV-033", + PermissibleValue( + text="LV-033", + description="Region code for Gulbenes novads.")) + setattr(cls, "LV-041", + PermissibleValue( + text="LV-041", + description="Region code for Jelgavas novads.")) + setattr(cls, "LV-042", + PermissibleValue( + text="LV-042", + description="Region code for Jēkabpils novads.")) + setattr(cls, "LV-047", + PermissibleValue( + text="LV-047", + description="Region code for Krāslavas novads.")) + setattr(cls, "LV-050", + PermissibleValue( + text="LV-050", + description="Region code for Kuldīgas novads.")) + setattr(cls, "LV-052", + PermissibleValue( + text="LV-052", + description="Region code for Ķekavas novads.")) + setattr(cls, "LV-054", + PermissibleValue( + text="LV-054", + description="Region code for Limbažu novads.")) + setattr(cls, "LV-056", + PermissibleValue( + text="LV-056", + description="Region code for Līvānu novads.")) + setattr(cls, "LV-058", + PermissibleValue( + text="LV-058", + description="Region code for Ludzas novads.")) + setattr(cls, "LV-059", + PermissibleValue( + text="LV-059", + description="Region code for Madonas novads.")) + setattr(cls, "LV-062", + PermissibleValue( + text="LV-062", + description="Region code for Mārupes novads.")) + setattr(cls, "LV-067", + PermissibleValue( + text="LV-067", + description="Region code for Ogres novads.")) + setattr(cls, "LV-068", + PermissibleValue( + text="LV-068", + description="Region code for Olaines novads.")) + setattr(cls, "LV-073", + PermissibleValue( + text="LV-073", + description="Region code for Preiļu novads.")) + setattr(cls, "LV-077", + PermissibleValue( + text="LV-077", + description="Region code for Rēzeknes novads.")) + setattr(cls, "LV-080", + PermissibleValue( + text="LV-080", + description="Region code for Ropažu novads.")) + setattr(cls, "LV-087", + PermissibleValue( + text="LV-087", + description="Region code for Salaspils novads.")) + setattr(cls, "LV-088", + PermissibleValue( + text="LV-088", + description="Region code for Saldus novads.")) + setattr(cls, "LV-089", + PermissibleValue( + text="LV-089", + description="Region code for Saulkrastu novads.")) + setattr(cls, "LV-091", + PermissibleValue( + text="LV-091", + description="Region code for Siguldas novads.")) + setattr(cls, "LV-094", + PermissibleValue( + text="LV-094", + description="Region code for Smiltenes novads.")) + setattr(cls, "LV-097", + PermissibleValue( + text="LV-097", + description="Region code for Talsu novads.")) + setattr(cls, "LV-099", + PermissibleValue( + text="LV-099", + description="Region code for Tukuma novads.")) + setattr(cls, "LV-101", + PermissibleValue( + text="LV-101", + description="Region code for Valkas novads.")) + setattr(cls, "LV-102", + PermissibleValue( + text="LV-102", + description="Region code for Varakļānu novads.")) + setattr(cls, "LV-106", + PermissibleValue( + text="LV-106", + description="Region code for Ventspils novads.")) + setattr(cls, "LV-111", + PermissibleValue( + text="LV-111", + description="Region code for Augšdaugavas novads.")) + setattr(cls, "LV-112", + PermissibleValue( + text="LV-112", + description="Region code for Dienvidkurzemes Novads.")) + setattr(cls, "LV-113", + PermissibleValue( + text="LV-113", + description="Region code for Valmieras Novads.")) + setattr(cls, "LV-DGV", + PermissibleValue( + text="LV-DGV", + description="Region code for Daugavpils.")) + setattr(cls, "LV-JEL", + PermissibleValue( + text="LV-JEL", + description="Region code for Jelgava.")) + setattr(cls, "LV-JUR", + PermissibleValue( + text="LV-JUR", + description="Region code for Jūrmala.")) + setattr(cls, "LV-LPX", + PermissibleValue( + text="LV-LPX", + description="Region code for Liepāja.")) + setattr(cls, "LV-REZ", + PermissibleValue( + text="LV-REZ", + description="Region code for Rēzekne.")) + setattr(cls, "LV-RIX", + PermissibleValue( + text="LV-RIX", + description="Region code for Rīga.")) + setattr(cls, "LV-VEN", + PermissibleValue( + text="LV-VEN", + description="Region code for Ventspils.")) + setattr(cls, "LY-BA", + PermissibleValue( + text="LY-BA", + description="Region code for Banghāzī.")) + setattr(cls, "LY-BU", + PermissibleValue( + text="LY-BU", + description="Region code for Al Buţnān.")) + setattr(cls, "LY-DR", + PermissibleValue( + text="LY-DR", + description="Region code for Darnah.")) + setattr(cls, "LY-GT", + PermissibleValue( + text="LY-GT", + description="Region code for Ghāt.")) + setattr(cls, "LY-JA", + PermissibleValue( + text="LY-JA", + description="Region code for Al Jabal al Akhḑar.")) + setattr(cls, "LY-JG", + PermissibleValue( + text="LY-JG", + description="Region code for Al Jabal al Gharbī.")) + setattr(cls, "LY-JI", + PermissibleValue( + text="LY-JI", + description="Region code for Al Jafārah.")) + setattr(cls, "LY-JU", + PermissibleValue( + text="LY-JU", + description="Region code for Al Jufrah.")) + setattr(cls, "LY-KF", + PermissibleValue( + text="LY-KF", + description="Region code for Al Kufrah.")) + setattr(cls, "LY-MB", + PermissibleValue( + text="LY-MB", + description="Region code for Al Marqab.")) + setattr(cls, "LY-MI", + PermissibleValue( + text="LY-MI", + description="Region code for Mişrātah.")) + setattr(cls, "LY-MJ", + PermissibleValue( + text="LY-MJ", + description="Region code for Al Marj.")) + setattr(cls, "LY-MQ", + PermissibleValue( + text="LY-MQ", + description="Region code for Murzuq.")) + setattr(cls, "LY-NL", + PermissibleValue( + text="LY-NL", + description="Region code for Nālūt.")) + setattr(cls, "LY-NQ", + PermissibleValue( + text="LY-NQ", + description="Region code for An Nuqāţ al Khams.")) + setattr(cls, "LY-SB", + PermissibleValue( + text="LY-SB", + description="Region code for Sabhā.")) + setattr(cls, "LY-SR", + PermissibleValue( + text="LY-SR", + description="Region code for Surt.")) + setattr(cls, "LY-TB", + PermissibleValue( + text="LY-TB", + description="Region code for Ţarābulus.")) + setattr(cls, "LY-WA", + PermissibleValue( + text="LY-WA", + description="Region code for Al Wāḩāt.")) + setattr(cls, "LY-WD", + PermissibleValue( + text="LY-WD", + description="Region code for Wādī al Ḩayāt.")) + setattr(cls, "LY-WS", + PermissibleValue( + text="LY-WS", + description="Region code for Wādī ash Shāţi’.")) + setattr(cls, "LY-ZA", + PermissibleValue( + text="LY-ZA", + description="Region code for Az Zāwiyah.")) + setattr(cls, "MA-01", + PermissibleValue( + text="MA-01", + description="Region code for Tanger-Tétouan-Al Hoceïma.")) + setattr(cls, "MA-02", + PermissibleValue( + text="MA-02", + description="Region code for L'Oriental.")) + setattr(cls, "MA-03", + PermissibleValue( + text="MA-03", + description="Region code for Fès-Meknès.")) + setattr(cls, "MA-04", + PermissibleValue( + text="MA-04", + description="Region code for Rabat-Salé-Kénitra.")) + setattr(cls, "MA-05", + PermissibleValue( + text="MA-05", + description="Region code for Béni Mellal-Khénifra.")) + setattr(cls, "MA-06", + PermissibleValue( + text="MA-06", + description="Region code for Casablanca-Settat.")) + setattr(cls, "MA-07", + PermissibleValue( + text="MA-07", + description="Region code for Marrakech-Safi.")) + setattr(cls, "MA-08", + PermissibleValue( + text="MA-08", + description="Region code for Drâa-Tafilalet.")) + setattr(cls, "MA-09", + PermissibleValue( + text="MA-09", + description="Region code for Souss-Massa.")) + setattr(cls, "MA-10", + PermissibleValue( + text="MA-10", + description="Region code for Guelmim-Oued Noun (EH-partial).")) + setattr(cls, "MA-11", + PermissibleValue( + text="MA-11", + description="Region code for Laâyoune-Sakia El Hamra (EH-partial).")) + setattr(cls, "MA-12", + PermissibleValue( + text="MA-12", + description="Region code for Dakhla-Oued Ed-Dahab (EH).")) + setattr(cls, "MA-AGD", + PermissibleValue( + text="MA-AGD", + description="Region code for Agadir-Ida-Ou-Tanane.")) + setattr(cls, "MA-AOU", + PermissibleValue( + text="MA-AOU", + description="Region code for Aousserd (EH).")) + setattr(cls, "MA-ASZ", + PermissibleValue( + text="MA-ASZ", + description="Region code for Assa-Zag (EH-partial).")) + setattr(cls, "MA-AZI", + PermissibleValue( + text="MA-AZI", + description="Region code for Azilal.")) + setattr(cls, "MA-BEM", + PermissibleValue( + text="MA-BEM", + description="Region code for Béni Mellal.")) + setattr(cls, "MA-BER", + PermissibleValue( + text="MA-BER", + description="Region code for Berkane.")) + setattr(cls, "MA-BES", + PermissibleValue( + text="MA-BES", + description="Region code for Benslimane.")) + setattr(cls, "MA-BOD", + PermissibleValue( + text="MA-BOD", + description="Region code for Boujdour (EH).")) + setattr(cls, "MA-BOM", + PermissibleValue( + text="MA-BOM", + description="Region code for Boulemane.")) + setattr(cls, "MA-BRR", + PermissibleValue( + text="MA-BRR", + description="Region code for Berrechid.")) + setattr(cls, "MA-CAS", + PermissibleValue( + text="MA-CAS", + description="Region code for Casablanca.")) + setattr(cls, "MA-CHE", + PermissibleValue( + text="MA-CHE", + description="Region code for Chefchaouen.")) + setattr(cls, "MA-CHI", + PermissibleValue( + text="MA-CHI", + description="Region code for Chichaoua.")) + setattr(cls, "MA-CHT", + PermissibleValue( + text="MA-CHT", + description="Region code for Chtouka-Ait Baha.")) + setattr(cls, "MA-DRI", + PermissibleValue( + text="MA-DRI", + description="Region code for Driouch.")) + setattr(cls, "MA-ERR", + PermissibleValue( + text="MA-ERR", + description="Region code for Errachidia.")) + setattr(cls, "MA-ESI", + PermissibleValue( + text="MA-ESI", + description="Region code for Essaouira.")) + setattr(cls, "MA-ESM", + PermissibleValue( + text="MA-ESM", + description="Region code for Es-Semara (EH-partial).")) + setattr(cls, "MA-FAH", + PermissibleValue( + text="MA-FAH", + description="Region code for Fahs-Anjra.")) + setattr(cls, "MA-FES", + PermissibleValue( + text="MA-FES", + description="Region code for Fès.")) + setattr(cls, "MA-FIG", + PermissibleValue( + text="MA-FIG", + description="Region code for Figuig.")) + setattr(cls, "MA-FQH", + PermissibleValue( + text="MA-FQH", + description="Region code for Fquih Ben Salah.")) + setattr(cls, "MA-GUE", + PermissibleValue( + text="MA-GUE", + description="Region code for Guelmim.")) + setattr(cls, "MA-GUF", + PermissibleValue( + text="MA-GUF", + description="Region code for Guercif.")) + setattr(cls, "MA-HAJ", + PermissibleValue( + text="MA-HAJ", + description="Region code for El Hajeb.")) + setattr(cls, "MA-HAO", + PermissibleValue( + text="MA-HAO", + description="Region code for Al Haouz.")) + setattr(cls, "MA-HOC", + PermissibleValue( + text="MA-HOC", + description="Region code for Al Hoceïma.")) + setattr(cls, "MA-IFR", + PermissibleValue( + text="MA-IFR", + description="Region code for Ifrane.")) + setattr(cls, "MA-INE", + PermissibleValue( + text="MA-INE", + description="Region code for Inezgane-Ait Melloul.")) + setattr(cls, "MA-JDI", + PermissibleValue( + text="MA-JDI", + description="Region code for El Jadida.")) + setattr(cls, "MA-JRA", + PermissibleValue( + text="MA-JRA", + description="Region code for Jerada.")) + setattr(cls, "MA-KEN", + PermissibleValue( + text="MA-KEN", + description="Region code for Kénitra.")) + setattr(cls, "MA-KES", + PermissibleValue( + text="MA-KES", + description="Region code for El Kelâa des Sraghna.")) + setattr(cls, "MA-KHE", + PermissibleValue( + text="MA-KHE", + description="Region code for Khémisset.")) + setattr(cls, "MA-KHN", + PermissibleValue( + text="MA-KHN", + description="Region code for Khénifra.")) + setattr(cls, "MA-KHO", + PermissibleValue( + text="MA-KHO", + description="Region code for Khouribga.")) + setattr(cls, "MA-LAA", + PermissibleValue( + text="MA-LAA", + description="Region code for Laâyoune (EH).")) + setattr(cls, "MA-LAR", + PermissibleValue( + text="MA-LAR", + description="Region code for Larache.")) + setattr(cls, "MA-MAR", + PermissibleValue( + text="MA-MAR", + description="Region code for Marrakech.")) + setattr(cls, "MA-MDF", + PermissibleValue( + text="MA-MDF", + description="Region code for M’diq-Fnideq.")) + setattr(cls, "MA-MED", + PermissibleValue( + text="MA-MED", + description="Region code for Médiouna.")) + setattr(cls, "MA-MEK", + PermissibleValue( + text="MA-MEK", + description="Region code for Meknès.")) + setattr(cls, "MA-MID", + PermissibleValue( + text="MA-MID", + description="Region code for Midelt.")) + setattr(cls, "MA-MOH", + PermissibleValue( + text="MA-MOH", + description="Region code for Mohammadia.")) + setattr(cls, "MA-MOU", + PermissibleValue( + text="MA-MOU", + description="Region code for Moulay Yacoub.")) + setattr(cls, "MA-NAD", + PermissibleValue( + text="MA-NAD", + description="Region code for Nador.")) + setattr(cls, "MA-NOU", + PermissibleValue( + text="MA-NOU", + description="Region code for Nouaceur.")) + setattr(cls, "MA-OUA", + PermissibleValue( + text="MA-OUA", + description="Region code for Ouarzazate.")) + setattr(cls, "MA-OUD", + PermissibleValue( + text="MA-OUD", + description="Region code for Oued Ed-Dahab (EH).")) + setattr(cls, "MA-OUJ", + PermissibleValue( + text="MA-OUJ", + description="Region code for Oujda-Angad.")) + setattr(cls, "MA-OUZ", + PermissibleValue( + text="MA-OUZ", + description="Region code for Ouezzane.")) + setattr(cls, "MA-RAB", + PermissibleValue( + text="MA-RAB", + description="Region code for Rabat.")) + setattr(cls, "MA-REH", + PermissibleValue( + text="MA-REH", + description="Region code for Rehamna.")) + setattr(cls, "MA-SAF", + PermissibleValue( + text="MA-SAF", + description="Region code for Safi.")) + setattr(cls, "MA-SAL", + PermissibleValue( + text="MA-SAL", + description="Region code for Salé.")) + setattr(cls, "MA-SEF", + PermissibleValue( + text="MA-SEF", + description="Region code for Sefrou.")) + setattr(cls, "MA-SET", + PermissibleValue( + text="MA-SET", + description="Region code for Settat.")) + setattr(cls, "MA-SIB", + PermissibleValue( + text="MA-SIB", + description="Region code for Sidi Bennour.")) + setattr(cls, "MA-SIF", + PermissibleValue( + text="MA-SIF", + description="Region code for Sidi Ifni.")) + setattr(cls, "MA-SIK", + PermissibleValue( + text="MA-SIK", + description="Region code for Sidi Kacem.")) + setattr(cls, "MA-SIL", + PermissibleValue( + text="MA-SIL", + description="Region code for Sidi Slimane.")) + setattr(cls, "MA-SKH", + PermissibleValue( + text="MA-SKH", + description="Region code for Skhirate-Témara.")) + setattr(cls, "MA-TAF", + PermissibleValue( + text="MA-TAF", + description="Region code for Tarfaya (EH-partial).")) + setattr(cls, "MA-TAI", + PermissibleValue( + text="MA-TAI", + description="Region code for Taourirt.")) + setattr(cls, "MA-TAO", + PermissibleValue( + text="MA-TAO", + description="Region code for Taounate.")) + setattr(cls, "MA-TAR", + PermissibleValue( + text="MA-TAR", + description="Region code for Taroudannt.")) + setattr(cls, "MA-TAT", + PermissibleValue( + text="MA-TAT", + description="Region code for Tata.")) + setattr(cls, "MA-TAZ", + PermissibleValue( + text="MA-TAZ", + description="Region code for Taza.")) + setattr(cls, "MA-TET", + PermissibleValue( + text="MA-TET", + description="Region code for Tétouan.")) + setattr(cls, "MA-TIN", + PermissibleValue( + text="MA-TIN", + description="Region code for Tinghir.")) + setattr(cls, "MA-TIZ", + PermissibleValue( + text="MA-TIZ", + description="Region code for Tiznit.")) + setattr(cls, "MA-TNG", + PermissibleValue( + text="MA-TNG", + description="Region code for Tanger-Assilah.")) + setattr(cls, "MA-TNT", + PermissibleValue( + text="MA-TNT", + description="Region code for Tan-Tan (EH-partial).")) + setattr(cls, "MA-YUS", + PermissibleValue( + text="MA-YUS", + description="Region code for Youssoufia.")) + setattr(cls, "MA-ZAG", + PermissibleValue( + text="MA-ZAG", + description="Region code for Zagora.")) + setattr(cls, "MC-CL", + PermissibleValue( + text="MC-CL", + description="Region code for La Colle.")) + setattr(cls, "MC-CO", + PermissibleValue( + text="MC-CO", + description="Region code for La Condamine.")) + setattr(cls, "MC-FO", + PermissibleValue( + text="MC-FO", + description="Region code for Fontvieille.")) + setattr(cls, "MC-GA", + PermissibleValue( + text="MC-GA", + description="Region code for La Gare.")) + setattr(cls, "MC-JE", + PermissibleValue( + text="MC-JE", + description="Region code for Jardin Exotique.")) + setattr(cls, "MC-LA", + PermissibleValue( + text="MC-LA", + description="Region code for Larvotto.")) + setattr(cls, "MC-MA", + PermissibleValue( + text="MC-MA", + description="Region code for Malbousquet.")) + setattr(cls, "MC-MC", + PermissibleValue( + text="MC-MC", + description="Region code for Monte-Carlo.")) + setattr(cls, "MC-MG", + PermissibleValue( + text="MC-MG", + description="Region code for Moneghetti.")) + setattr(cls, "MC-MO", + PermissibleValue( + text="MC-MO", + description="Region code for Monaco-Ville.")) + setattr(cls, "MC-MU", + PermissibleValue( + text="MC-MU", + description="Region code for Moulins.")) + setattr(cls, "MC-PH", + PermissibleValue( + text="MC-PH", + description="Region code for Port-Hercule.")) + setattr(cls, "MC-SD", + PermissibleValue( + text="MC-SD", + description="Region code for Sainte-Dévote.")) + setattr(cls, "MC-SO", + PermissibleValue( + text="MC-SO", + description="Region code for La Source.")) + setattr(cls, "MC-SP", + PermissibleValue( + text="MC-SP", + description="Region code for Spélugues.")) + setattr(cls, "MC-SR", + PermissibleValue( + text="MC-SR", + description="Region code for Saint-Roman.")) + setattr(cls, "MC-VR", + PermissibleValue( + text="MC-VR", + description="Region code for Vallon de la Rousse.")) + setattr(cls, "MD-AN", + PermissibleValue( + text="MD-AN", + description="Region code for Anenii Noi.")) + setattr(cls, "MD-BA", + PermissibleValue( + text="MD-BA", + description="Region code for Bălți.")) + setattr(cls, "MD-BD", + PermissibleValue( + text="MD-BD", + description="Region code for Bender [Tighina].")) + setattr(cls, "MD-BR", + PermissibleValue( + text="MD-BR", + description="Region code for Briceni.")) + setattr(cls, "MD-BS", + PermissibleValue( + text="MD-BS", + description="Region code for Basarabeasca.")) + setattr(cls, "MD-CA", + PermissibleValue( + text="MD-CA", + description="Region code for Cahul.")) + setattr(cls, "MD-CL", + PermissibleValue( + text="MD-CL", + description="Region code for Călărași.")) + setattr(cls, "MD-CM", + PermissibleValue( + text="MD-CM", + description="Region code for Cimișlia.")) + setattr(cls, "MD-CR", + PermissibleValue( + text="MD-CR", + description="Region code for Criuleni.")) + setattr(cls, "MD-CS", + PermissibleValue( + text="MD-CS", + description="Region code for Căușeni.")) + setattr(cls, "MD-CT", + PermissibleValue( + text="MD-CT", + description="Region code for Cantemir.")) + setattr(cls, "MD-CU", + PermissibleValue( + text="MD-CU", + description="Region code for Chișinău.")) + setattr(cls, "MD-DO", + PermissibleValue( + text="MD-DO", + description="Region code for Dondușeni.")) + setattr(cls, "MD-DR", + PermissibleValue( + text="MD-DR", + description="Region code for Drochia.")) + setattr(cls, "MD-DU", + PermissibleValue( + text="MD-DU", + description="Region code for Dubăsari.")) + setattr(cls, "MD-ED", + PermissibleValue( + text="MD-ED", + description="Region code for Edineț.")) + setattr(cls, "MD-FA", + PermissibleValue( + text="MD-FA", + description="Region code for Fălești.")) + setattr(cls, "MD-FL", + PermissibleValue( + text="MD-FL", + description="Region code for Florești.")) + setattr(cls, "MD-GA", + PermissibleValue( + text="MD-GA", + description="Region code for Găgăuzia, Unitatea teritorială autonomă (UTAG).")) + setattr(cls, "MD-GL", + PermissibleValue( + text="MD-GL", + description="Region code for Glodeni.")) + setattr(cls, "MD-HI", + PermissibleValue( + text="MD-HI", + description="Region code for Hîncești.")) + setattr(cls, "MD-IA", + PermissibleValue( + text="MD-IA", + description="Region code for Ialoveni.")) + setattr(cls, "MD-LE", + PermissibleValue( + text="MD-LE", + description="Region code for Leova.")) + setattr(cls, "MD-NI", + PermissibleValue( + text="MD-NI", + description="Region code for Nisporeni.")) + setattr(cls, "MD-OC", + PermissibleValue( + text="MD-OC", + description="Region code for Ocnița.")) + setattr(cls, "MD-OR", + PermissibleValue( + text="MD-OR", + description="Region code for Orhei.")) + setattr(cls, "MD-RE", + PermissibleValue( + text="MD-RE", + description="Region code for Rezina.")) + setattr(cls, "MD-RI", + PermissibleValue( + text="MD-RI", + description="Region code for Rîșcani.")) + setattr(cls, "MD-SD", + PermissibleValue( + text="MD-SD", + description="Region code for Șoldănești.")) + setattr(cls, "MD-SI", + PermissibleValue( + text="MD-SI", + description="Region code for Sîngerei.")) + setattr(cls, "MD-SN", + PermissibleValue( + text="MD-SN", + description="Region code for Stînga Nistrului, unitatea teritorială din.")) + setattr(cls, "MD-SO", + PermissibleValue( + text="MD-SO", + description="Region code for Soroca.")) + setattr(cls, "MD-ST", + PermissibleValue( + text="MD-ST", + description="Region code for Strășeni.")) + setattr(cls, "MD-SV", + PermissibleValue( + text="MD-SV", + description="Region code for Ștefan Vodă.")) + setattr(cls, "MD-TA", + PermissibleValue( + text="MD-TA", + description="Region code for Taraclia.")) + setattr(cls, "MD-TE", + PermissibleValue( + text="MD-TE", + description="Region code for Telenești.")) + setattr(cls, "MD-UN", + PermissibleValue( + text="MD-UN", + description="Region code for Ungheni.")) + setattr(cls, "ME-01", + PermissibleValue( + text="ME-01", + description="Region code for Andrijevica.")) + setattr(cls, "ME-02", + PermissibleValue( + text="ME-02", + description="Region code for Bar.")) + setattr(cls, "ME-03", + PermissibleValue( + text="ME-03", + description="Region code for Berane.")) + setattr(cls, "ME-04", + PermissibleValue( + text="ME-04", + description="Region code for Bijelo Polje.")) + setattr(cls, "ME-05", + PermissibleValue( + text="ME-05", + description="Region code for Budva.")) + setattr(cls, "ME-06", + PermissibleValue( + text="ME-06", + description="Region code for Cetinje.")) + setattr(cls, "ME-07", + PermissibleValue( + text="ME-07", + description="Region code for Danilovgrad.")) + setattr(cls, "ME-08", + PermissibleValue( + text="ME-08", + description="Region code for Herceg-Novi.")) + setattr(cls, "ME-09", + PermissibleValue( + text="ME-09", + description="Region code for Kolašin.")) + setattr(cls, "ME-10", + PermissibleValue( + text="ME-10", + description="Region code for Kotor.")) + setattr(cls, "ME-11", + PermissibleValue( + text="ME-11", + description="Region code for Mojkovac.")) + setattr(cls, "ME-12", + PermissibleValue( + text="ME-12", + description="Region code for Nikšić.")) + setattr(cls, "ME-13", + PermissibleValue( + text="ME-13", + description="Region code for Plav.")) + setattr(cls, "ME-14", + PermissibleValue( + text="ME-14", + description="Region code for Pljevlja.")) + setattr(cls, "ME-15", + PermissibleValue( + text="ME-15", + description="Region code for Plužine.")) + setattr(cls, "ME-16", + PermissibleValue( + text="ME-16", + description="Region code for Podgorica.")) + setattr(cls, "ME-17", + PermissibleValue( + text="ME-17", + description="Region code for Rožaje.")) + setattr(cls, "ME-18", + PermissibleValue( + text="ME-18", + description="Region code for Šavnik.")) + setattr(cls, "ME-19", + PermissibleValue( + text="ME-19", + description="Region code for Tivat.")) + setattr(cls, "ME-20", + PermissibleValue( + text="ME-20", + description="Region code for Ulcinj.")) + setattr(cls, "ME-21", + PermissibleValue( + text="ME-21", + description="Region code for Žabljak.")) + setattr(cls, "ME-22", + PermissibleValue( + text="ME-22", + description="Region code for Gusinje.")) + setattr(cls, "ME-23", + PermissibleValue( + text="ME-23", + description="Region code for Petnjica.")) + setattr(cls, "ME-24", + PermissibleValue( + text="ME-24", + description="Region code for Tuzi.")) + setattr(cls, "ME-25", + PermissibleValue( + text="ME-25", + description="Region code for Zeta.")) + setattr(cls, "MG-A", + PermissibleValue( + text="MG-A", + description="Region code for Toamasina.")) + setattr(cls, "MG-D", + PermissibleValue( + text="MG-D", + description="Region code for Antsiranana.")) + setattr(cls, "MG-F", + PermissibleValue( + text="MG-F", + description="Region code for Fianarantsoa.")) + setattr(cls, "MG-M", + PermissibleValue( + text="MG-M", + description="Region code for Mahajanga.")) + setattr(cls, "MG-T", + PermissibleValue( + text="MG-T", + description="Region code for Antananarivo.")) + setattr(cls, "MG-U", + PermissibleValue( + text="MG-U", + description="Region code for Toliara.")) + setattr(cls, "MH-ALK", + PermissibleValue( + text="MH-ALK", + description="Region code for Ailuk.")) + setattr(cls, "MH-ALL", + PermissibleValue( + text="MH-ALL", + description="Region code for Ailinglaplap.")) + setattr(cls, "MH-ARN", + PermissibleValue( + text="MH-ARN", + description="Region code for Arno.")) + setattr(cls, "MH-AUR", + PermissibleValue( + text="MH-AUR", + description="Region code for Aur.")) + setattr(cls, "MH-EBO", + PermissibleValue( + text="MH-EBO", + description="Region code for Ebon.")) + setattr(cls, "MH-ENI", + PermissibleValue( + text="MH-ENI", + description="Region code for Enewetak & Ujelang.")) + setattr(cls, "MH-JAB", + PermissibleValue( + text="MH-JAB", + description="Region code for Jabat.")) + setattr(cls, "MH-JAL", + PermissibleValue( + text="MH-JAL", + description="Region code for Jaluit.")) + setattr(cls, "MH-KIL", + PermissibleValue( + text="MH-KIL", + description="Region code for Bikini & Kili.")) + setattr(cls, "MH-KWA", + PermissibleValue( + text="MH-KWA", + description="Region code for Kwajalein.")) + setattr(cls, "MH-L", + PermissibleValue( + text="MH-L", + description="Region code for Ralik chain.")) + setattr(cls, "MH-LAE", + PermissibleValue( + text="MH-LAE", + description="Region code for Lae.")) + setattr(cls, "MH-LIB", + PermissibleValue( + text="MH-LIB", + description="Region code for Lib.")) + setattr(cls, "MH-LIK", + PermissibleValue( + text="MH-LIK", + description="Region code for Likiep.")) + setattr(cls, "MH-MAJ", + PermissibleValue( + text="MH-MAJ", + description="Region code for Majuro.")) + setattr(cls, "MH-MAL", + PermissibleValue( + text="MH-MAL", + description="Region code for Maloelap.")) + setattr(cls, "MH-MEJ", + PermissibleValue( + text="MH-MEJ", + description="Region code for Mejit.")) + setattr(cls, "MH-MIL", + PermissibleValue( + text="MH-MIL", + description="Region code for Mili.")) + setattr(cls, "MH-NMK", + PermissibleValue( + text="MH-NMK", + description="Region code for Namdrik.")) + setattr(cls, "MH-NMU", + PermissibleValue( + text="MH-NMU", + description="Region code for Namu.")) + setattr(cls, "MH-RON", + PermissibleValue( + text="MH-RON", + description="Region code for Rongelap.")) + setattr(cls, "MH-T", + PermissibleValue( + text="MH-T", + description="Region code for Ratak chain.")) + setattr(cls, "MH-UJA", + PermissibleValue( + text="MH-UJA", + description="Region code for Ujae.")) + setattr(cls, "MH-UTI", + PermissibleValue( + text="MH-UTI", + description="Region code for Utrik.")) + setattr(cls, "MH-WTH", + PermissibleValue( + text="MH-WTH", + description="Region code for Wotho.")) + setattr(cls, "MH-WTJ", + PermissibleValue( + text="MH-WTJ", + description="Region code for Wotje.")) + setattr(cls, "MK-101", + PermissibleValue( + text="MK-101", + description="Region code for Veles.")) + setattr(cls, "MK-102", + PermissibleValue( + text="MK-102", + description="Region code for Gradsko.")) + setattr(cls, "MK-103", + PermissibleValue( + text="MK-103", + description="Region code for Demir Kapija.")) + setattr(cls, "MK-104", + PermissibleValue( + text="MK-104", + description="Region code for Kavadarci.")) + setattr(cls, "MK-105", + PermissibleValue( + text="MK-105", + description="Region code for Lozovo.")) + setattr(cls, "MK-106", + PermissibleValue( + text="MK-106", + description="Region code for Negotino.")) + setattr(cls, "MK-107", + PermissibleValue( + text="MK-107", + description="Region code for Rosoman.")) + setattr(cls, "MK-108", + PermissibleValue( + text="MK-108", + description="Region code for Sveti Nikole.")) + setattr(cls, "MK-109", + PermissibleValue( + text="MK-109", + description="Region code for Čaška.")) + setattr(cls, "MK-201", + PermissibleValue( + text="MK-201", + description="Region code for Berovo.")) + setattr(cls, "MK-202", + PermissibleValue( + text="MK-202", + description="Region code for Vinica.")) + setattr(cls, "MK-203", + PermissibleValue( + text="MK-203", + description="Region code for Delčevo.")) + setattr(cls, "MK-204", + PermissibleValue( + text="MK-204", + description="Region code for Zrnovci.")) + setattr(cls, "MK-205", + PermissibleValue( + text="MK-205", + description="Region code for Karbinci.")) + setattr(cls, "MK-206", + PermissibleValue( + text="MK-206", + description="Region code for Kočani.")) + setattr(cls, "MK-207", + PermissibleValue( + text="MK-207", + description="Region code for Makedonska Kamenica.")) + setattr(cls, "MK-208", + PermissibleValue( + text="MK-208", + description="Region code for Pehčevo.")) + setattr(cls, "MK-209", + PermissibleValue( + text="MK-209", + description="Region code for Probištip.")) + setattr(cls, "MK-210", + PermissibleValue( + text="MK-210", + description="Region code for Češinovo-Obleševo.")) + setattr(cls, "MK-211", + PermissibleValue( + text="MK-211", + description="Region code for Štip.")) + setattr(cls, "MK-301", + PermissibleValue( + text="MK-301", + description="Region code for Vevčani.")) + setattr(cls, "MK-303", + PermissibleValue( + text="MK-303", + description="Region code for Debar.")) + setattr(cls, "MK-304", + PermissibleValue( + text="MK-304", + description="Region code for Debrca.")) + setattr(cls, "MK-307", + PermissibleValue( + text="MK-307", + description="Region code for Kičevo.")) + setattr(cls, "MK-308", + PermissibleValue( + text="MK-308", + description="Region code for Makedonski Brod.")) + setattr(cls, "MK-310", + PermissibleValue( + text="MK-310", + description="Region code for Ohrid.")) + setattr(cls, "MK-311", + PermissibleValue( + text="MK-311", + description="Region code for Plasnica.")) + setattr(cls, "MK-312", + PermissibleValue( + text="MK-312", + description="Region code for Struga.")) + setattr(cls, "MK-313", + PermissibleValue( + text="MK-313", + description="Region code for Centar Župa.")) + setattr(cls, "MK-401", + PermissibleValue( + text="MK-401", + description="Region code for Bogdanci.")) + setattr(cls, "MK-402", + PermissibleValue( + text="MK-402", + description="Region code for Bosilovo.")) + setattr(cls, "MK-403", + PermissibleValue( + text="MK-403", + description="Region code for Valandovo.")) + setattr(cls, "MK-404", + PermissibleValue( + text="MK-404", + description="Region code for Vasilevo.")) + setattr(cls, "MK-405", + PermissibleValue( + text="MK-405", + description="Region code for Gevgelija.")) + setattr(cls, "MK-406", + PermissibleValue( + text="MK-406", + description="Region code for Dojran.")) + setattr(cls, "MK-407", + PermissibleValue( + text="MK-407", + description="Region code for Konče.")) + setattr(cls, "MK-408", + PermissibleValue( + text="MK-408", + description="Region code for Novo Selo.")) + setattr(cls, "MK-409", + PermissibleValue( + text="MK-409", + description="Region code for Radoviš.")) + setattr(cls, "MK-410", + PermissibleValue( + text="MK-410", + description="Region code for Strumica.")) + setattr(cls, "MK-501", + PermissibleValue( + text="MK-501", + description="Region code for Bitola.")) + setattr(cls, "MK-502", + PermissibleValue( + text="MK-502", + description="Region code for Demir Hisar.")) + setattr(cls, "MK-503", + PermissibleValue( + text="MK-503", + description="Region code for Dolneni.")) + setattr(cls, "MK-504", + PermissibleValue( + text="MK-504", + description="Region code for Krivogaštani.")) + setattr(cls, "MK-505", + PermissibleValue( + text="MK-505", + description="Region code for Kruševo.")) + setattr(cls, "MK-506", + PermissibleValue( + text="MK-506", + description="Region code for Mogila.")) + setattr(cls, "MK-507", + PermissibleValue( + text="MK-507", + description="Region code for Novaci.")) + setattr(cls, "MK-508", + PermissibleValue( + text="MK-508", + description="Region code for Prilep.")) + setattr(cls, "MK-509", + PermissibleValue( + text="MK-509", + description="Region code for Resen.")) + setattr(cls, "MK-601", + PermissibleValue( + text="MK-601", + description="Region code for Bogovinje.")) + setattr(cls, "MK-602", + PermissibleValue( + text="MK-602", + description="Region code for Brvenica.")) + setattr(cls, "MK-603", + PermissibleValue( + text="MK-603", + description="Region code for Vrapčište.")) + setattr(cls, "MK-604", + PermissibleValue( + text="MK-604", + description="Region code for Gostivar.")) + setattr(cls, "MK-605", + PermissibleValue( + text="MK-605", + description="Region code for Želino.")) + setattr(cls, "MK-606", + PermissibleValue( + text="MK-606", + description="Region code for Jegunovce.")) + setattr(cls, "MK-607", + PermissibleValue( + text="MK-607", + description="Region code for Mavrovo i Rostuše.")) + setattr(cls, "MK-608", + PermissibleValue( + text="MK-608", + description="Region code for Tearce.")) + setattr(cls, "MK-609", + PermissibleValue( + text="MK-609", + description="Region code for Tetovo.")) + setattr(cls, "MK-701", + PermissibleValue( + text="MK-701", + description="Region code for Kratovo.")) + setattr(cls, "MK-702", + PermissibleValue( + text="MK-702", + description="Region code for Kriva Palanka.")) + setattr(cls, "MK-703", + PermissibleValue( + text="MK-703", + description="Region code for Kumanovo.")) + setattr(cls, "MK-704", + PermissibleValue( + text="MK-704", + description="Region code for Lipkovo.")) + setattr(cls, "MK-705", + PermissibleValue( + text="MK-705", + description="Region code for Rankovce.")) + setattr(cls, "MK-706", + PermissibleValue( + text="MK-706", + description="Region code for Staro Nagoričane.")) + setattr(cls, "MK-801", + PermissibleValue( + text="MK-801", + description="Region code for Aerodrom †.")) + setattr(cls, "MK-802", + PermissibleValue( + text="MK-802", + description="Region code for Aračinovo.")) + setattr(cls, "MK-803", + PermissibleValue( + text="MK-803", + description="Region code for Butel †.")) + setattr(cls, "MK-804", + PermissibleValue( + text="MK-804", + description="Region code for Gazi Baba †.")) + setattr(cls, "MK-805", + PermissibleValue( + text="MK-805", + description="Region code for Gjorče Petrov †.")) + setattr(cls, "MK-806", + PermissibleValue( + text="MK-806", + description="Region code for Zelenikovo.")) + setattr(cls, "MK-807", + PermissibleValue( + text="MK-807", + description="Region code for Ilinden.")) + setattr(cls, "MK-808", + PermissibleValue( + text="MK-808", + description="Region code for Karpoš †.")) + setattr(cls, "MK-809", + PermissibleValue( + text="MK-809", + description="Region code for Kisela Voda †.")) + setattr(cls, "MK-810", + PermissibleValue( + text="MK-810", + description="Region code for Petrovec.")) + setattr(cls, "MK-811", + PermissibleValue( + text="MK-811", + description="Region code for Saraj †.")) + setattr(cls, "MK-812", + PermissibleValue( + text="MK-812", + description="Region code for Sopište.")) + setattr(cls, "MK-813", + PermissibleValue( + text="MK-813", + description="Region code for Studeničani.")) + setattr(cls, "MK-814", + PermissibleValue( + text="MK-814", + description="Region code for Centar †.")) + setattr(cls, "MK-815", + PermissibleValue( + text="MK-815", + description="Region code for Čair †.")) + setattr(cls, "MK-816", + PermissibleValue( + text="MK-816", + description="Region code for Čučer-Sandevo.")) + setattr(cls, "MK-817", + PermissibleValue( + text="MK-817", + description="Region code for Šuto Orizari †.")) + setattr(cls, "ML-1", + PermissibleValue( + text="ML-1", + description="Region code for Kayes.")) + setattr(cls, "ML-10", + PermissibleValue( + text="ML-10", + description="Region code for Taoudénit.")) + setattr(cls, "ML-2", + PermissibleValue( + text="ML-2", + description="Region code for Koulikoro.")) + setattr(cls, "ML-3", + PermissibleValue( + text="ML-3", + description="Region code for Sikasso.")) + setattr(cls, "ML-4", + PermissibleValue( + text="ML-4", + description="Region code for Ségou.")) + setattr(cls, "ML-5", + PermissibleValue( + text="ML-5", + description="Region code for Mopti.")) + setattr(cls, "ML-6", + PermissibleValue( + text="ML-6", + description="Region code for Tombouctou.")) + setattr(cls, "ML-7", + PermissibleValue( + text="ML-7", + description="Region code for Gao.")) + setattr(cls, "ML-8", + PermissibleValue( + text="ML-8", + description="Region code for Kidal.")) + setattr(cls, "ML-9", + PermissibleValue( + text="ML-9", + description="Region code for Ménaka.")) + setattr(cls, "ML-BKO", + PermissibleValue( + text="ML-BKO", + description="Region code for Bamako.")) + setattr(cls, "MM-01", + PermissibleValue( + text="MM-01", + description="Region code for Sagaing.")) + setattr(cls, "MM-02", + PermissibleValue( + text="MM-02", + description="Region code for Bago.")) + setattr(cls, "MM-03", + PermissibleValue( + text="MM-03", + description="Region code for Magway.")) + setattr(cls, "MM-04", + PermissibleValue( + text="MM-04", + description="Region code for Mandalay.")) + setattr(cls, "MM-05", + PermissibleValue( + text="MM-05", + description="Region code for Tanintharyi.")) + setattr(cls, "MM-06", + PermissibleValue( + text="MM-06", + description="Region code for Yangon.")) + setattr(cls, "MM-07", + PermissibleValue( + text="MM-07", + description="Region code for Ayeyarwady.")) + setattr(cls, "MM-11", + PermissibleValue( + text="MM-11", + description="Region code for Kachin.")) + setattr(cls, "MM-12", + PermissibleValue( + text="MM-12", + description="Region code for Kayah.")) + setattr(cls, "MM-13", + PermissibleValue( + text="MM-13", + description="Region code for Kayin.")) + setattr(cls, "MM-14", + PermissibleValue( + text="MM-14", + description="Region code for Chin.")) + setattr(cls, "MM-15", + PermissibleValue( + text="MM-15", + description="Region code for Mon.")) + setattr(cls, "MM-16", + PermissibleValue( + text="MM-16", + description="Region code for Rakhine.")) + setattr(cls, "MM-17", + PermissibleValue( + text="MM-17", + description="Region code for Shan.")) + setattr(cls, "MM-18", + PermissibleValue( + text="MM-18", + description="Region code for Nay Pyi Taw.")) + setattr(cls, "MN-035", + PermissibleValue( + text="MN-035", + description="Region code for Orhon.")) + setattr(cls, "MN-037", + PermissibleValue( + text="MN-037", + description="Region code for Darhan uul.")) + setattr(cls, "MN-039", + PermissibleValue( + text="MN-039", + description="Region code for Hentiy.")) + setattr(cls, "MN-041", + PermissibleValue( + text="MN-041", + description="Region code for Hövsgöl.")) + setattr(cls, "MN-043", + PermissibleValue( + text="MN-043", + description="Region code for Hovd.")) + setattr(cls, "MN-046", + PermissibleValue( + text="MN-046", + description="Region code for Uvs.")) + setattr(cls, "MN-047", + PermissibleValue( + text="MN-047", + description="Region code for Töv.")) + setattr(cls, "MN-049", + PermissibleValue( + text="MN-049", + description="Region code for Selenge.")) + setattr(cls, "MN-051", + PermissibleValue( + text="MN-051", + description="Region code for Sühbaatar.")) + setattr(cls, "MN-053", + PermissibleValue( + text="MN-053", + description="Region code for Ömnögovĭ.")) + setattr(cls, "MN-055", + PermissibleValue( + text="MN-055", + description="Region code for Övörhangay.")) + setattr(cls, "MN-057", + PermissibleValue( + text="MN-057", + description="Region code for Dzavhan.")) + setattr(cls, "MN-059", + PermissibleValue( + text="MN-059", + description="Region code for Dundgovĭ.")) + setattr(cls, "MN-061", + PermissibleValue( + text="MN-061", + description="Region code for Dornod.")) + setattr(cls, "MN-063", + PermissibleValue( + text="MN-063", + description="Region code for Dornogovĭ.")) + setattr(cls, "MN-064", + PermissibleValue( + text="MN-064", + description="Region code for Govĭ-Sümber.")) + setattr(cls, "MN-065", + PermissibleValue( + text="MN-065", + description="Region code for Govĭ-Altay.")) + setattr(cls, "MN-067", + PermissibleValue( + text="MN-067", + description="Region code for Bulgan.")) + setattr(cls, "MN-069", + PermissibleValue( + text="MN-069", + description="Region code for Bayanhongor.")) + setattr(cls, "MN-071", + PermissibleValue( + text="MN-071", + description="Region code for Bayan-Ölgiy.")) + setattr(cls, "MN-073", + PermissibleValue( + text="MN-073", + description="Region code for Arhangay.")) + setattr(cls, "MN-1", + PermissibleValue( + text="MN-1", + description="Region code for Ulaanbaatar.")) + setattr(cls, "MR-01", + PermissibleValue( + text="MR-01", + description="Region code for Hodh ech Chargui.")) + setattr(cls, "MR-02", + PermissibleValue( + text="MR-02", + description="Region code for Hodh el Gharbi.")) + setattr(cls, "MR-03", + PermissibleValue( + text="MR-03", + description="Region code for Assaba.")) + setattr(cls, "MR-04", + PermissibleValue( + text="MR-04", + description="Region code for Gorgol.")) + setattr(cls, "MR-05", + PermissibleValue( + text="MR-05", + description="Region code for Brakna.")) + setattr(cls, "MR-06", + PermissibleValue( + text="MR-06", + description="Region code for Trarza.")) + setattr(cls, "MR-07", + PermissibleValue( + text="MR-07", + description="Region code for Adrar.")) + setattr(cls, "MR-08", + PermissibleValue( + text="MR-08", + description="Region code for Dakhlet Nouâdhibou.")) + setattr(cls, "MR-09", + PermissibleValue( + text="MR-09", + description="Region code for Tagant.")) + setattr(cls, "MR-10", + PermissibleValue( + text="MR-10", + description="Region code for Guidimaka.")) + setattr(cls, "MR-11", + PermissibleValue( + text="MR-11", + description="Region code for Tiris Zemmour.")) + setattr(cls, "MR-12", + PermissibleValue( + text="MR-12", + description="Region code for Inchiri.")) + setattr(cls, "MR-13", + PermissibleValue( + text="MR-13", + description="Region code for Nuwākshūţ al Gharbīyah.")) + setattr(cls, "MR-14", + PermissibleValue( + text="MR-14", + description="Region code for Nuwākshūţ ash Shamālīyah.")) + setattr(cls, "MR-15", + PermissibleValue( + text="MR-15", + description="Region code for Nuwākshūţ al Janūbīyah.")) + setattr(cls, "MT-01", + PermissibleValue( + text="MT-01", + description="Region code for Attard.")) + setattr(cls, "MT-02", + PermissibleValue( + text="MT-02", + description="Region code for Balzan.")) + setattr(cls, "MT-03", + PermissibleValue( + text="MT-03", + description="Region code for Birgu.")) + setattr(cls, "MT-04", + PermissibleValue( + text="MT-04", + description="Region code for Birkirkara.")) + setattr(cls, "MT-05", + PermissibleValue( + text="MT-05", + description="Region code for Birżebbuġa.")) + setattr(cls, "MT-06", + PermissibleValue( + text="MT-06", + description="Region code for Bormla.")) + setattr(cls, "MT-07", + PermissibleValue( + text="MT-07", + description="Region code for Dingli.")) + setattr(cls, "MT-08", + PermissibleValue( + text="MT-08", + description="Region code for Fgura.")) + setattr(cls, "MT-09", + PermissibleValue( + text="MT-09", + description="Region code for Floriana.")) + setattr(cls, "MT-10", + PermissibleValue( + text="MT-10", + description="Region code for Fontana.")) + setattr(cls, "MT-11", + PermissibleValue( + text="MT-11", + description="Region code for Gudja.")) + setattr(cls, "MT-12", + PermissibleValue( + text="MT-12", + description="Region code for Gżira.")) + setattr(cls, "MT-13", + PermissibleValue( + text="MT-13", + description="Region code for Għajnsielem.")) + setattr(cls, "MT-14", + PermissibleValue( + text="MT-14", + description="Region code for Għarb.")) + setattr(cls, "MT-15", + PermissibleValue( + text="MT-15", + description="Region code for Għargħur.")) + setattr(cls, "MT-16", + PermissibleValue( + text="MT-16", + description="Region code for Għasri.")) + setattr(cls, "MT-17", + PermissibleValue( + text="MT-17", + description="Region code for Għaxaq.")) + setattr(cls, "MT-18", + PermissibleValue( + text="MT-18", + description="Region code for Ħamrun.")) + setattr(cls, "MT-19", + PermissibleValue( + text="MT-19", + description="Region code for Iklin.")) + setattr(cls, "MT-20", + PermissibleValue( + text="MT-20", + description="Region code for Isla.")) + setattr(cls, "MT-21", + PermissibleValue( + text="MT-21", + description="Region code for Kalkara.")) + setattr(cls, "MT-22", + PermissibleValue( + text="MT-22", + description="Region code for Kerċem.")) + setattr(cls, "MT-23", + PermissibleValue( + text="MT-23", + description="Region code for Kirkop.")) + setattr(cls, "MT-24", + PermissibleValue( + text="MT-24", + description="Region code for Lija.")) + setattr(cls, "MT-25", + PermissibleValue( + text="MT-25", + description="Region code for Luqa.")) + setattr(cls, "MT-26", + PermissibleValue( + text="MT-26", + description="Region code for Marsa.")) + setattr(cls, "MT-27", + PermissibleValue( + text="MT-27", + description="Region code for Marsaskala.")) + setattr(cls, "MT-28", + PermissibleValue( + text="MT-28", + description="Region code for Marsaxlokk.")) + setattr(cls, "MT-29", + PermissibleValue( + text="MT-29", + description="Region code for Mdina.")) + setattr(cls, "MT-30", + PermissibleValue( + text="MT-30", + description="Region code for Mellieħa.")) + setattr(cls, "MT-31", + PermissibleValue( + text="MT-31", + description="Region code for Mġarr.")) + setattr(cls, "MT-32", + PermissibleValue( + text="MT-32", + description="Region code for Mosta.")) + setattr(cls, "MT-33", + PermissibleValue( + text="MT-33", + description="Region code for Mqabba.")) + setattr(cls, "MT-34", + PermissibleValue( + text="MT-34", + description="Region code for Msida.")) + setattr(cls, "MT-35", + PermissibleValue( + text="MT-35", + description="Region code for Mtarfa.")) + setattr(cls, "MT-36", + PermissibleValue( + text="MT-36", + description="Region code for Munxar.")) + setattr(cls, "MT-37", + PermissibleValue( + text="MT-37", + description="Region code for Nadur.")) + setattr(cls, "MT-38", + PermissibleValue( + text="MT-38", + description="Region code for Naxxar.")) + setattr(cls, "MT-39", + PermissibleValue( + text="MT-39", + description="Region code for Paola.")) + setattr(cls, "MT-40", + PermissibleValue( + text="MT-40", + description="Region code for Pembroke.")) + setattr(cls, "MT-41", + PermissibleValue( + text="MT-41", + description="Region code for Pietà.")) + setattr(cls, "MT-42", + PermissibleValue( + text="MT-42", + description="Region code for Qala.")) + setattr(cls, "MT-43", + PermissibleValue( + text="MT-43", + description="Region code for Qormi.")) + setattr(cls, "MT-44", + PermissibleValue( + text="MT-44", + description="Region code for Qrendi.")) + setattr(cls, "MT-45", + PermissibleValue( + text="MT-45", + description="Region code for Rabat Gozo.")) + setattr(cls, "MT-46", + PermissibleValue( + text="MT-46", + description="Region code for Rabat Malta.")) + setattr(cls, "MT-47", + PermissibleValue( + text="MT-47", + description="Region code for Safi.")) + setattr(cls, "MT-48", + PermissibleValue( + text="MT-48", + description="Region code for Saint Julian's.")) + setattr(cls, "MT-49", + PermissibleValue( + text="MT-49", + description="Region code for Saint John.")) + setattr(cls, "MT-50", + PermissibleValue( + text="MT-50", + description="Region code for Saint Lawrence.")) + setattr(cls, "MT-51", + PermissibleValue( + text="MT-51", + description="Region code for Saint Paul's Bay.")) + setattr(cls, "MT-52", + PermissibleValue( + text="MT-52", + description="Region code for Sannat.")) + setattr(cls, "MT-53", + PermissibleValue( + text="MT-53", + description="Region code for Saint Lucia's.")) + setattr(cls, "MT-54", + PermissibleValue( + text="MT-54", + description="Region code for Santa Venera.")) + setattr(cls, "MT-55", + PermissibleValue( + text="MT-55", + description="Region code for Siġġiewi.")) + setattr(cls, "MT-56", + PermissibleValue( + text="MT-56", + description="Region code for Sliema.")) + setattr(cls, "MT-57", + PermissibleValue( + text="MT-57", + description="Region code for Swieqi.")) + setattr(cls, "MT-58", + PermissibleValue( + text="MT-58", + description="Region code for Ta' Xbiex.")) + setattr(cls, "MT-59", + PermissibleValue( + text="MT-59", + description="Region code for Tarxien.")) + setattr(cls, "MT-60", + PermissibleValue( + text="MT-60", + description="Region code for Valletta.")) + setattr(cls, "MT-61", + PermissibleValue( + text="MT-61", + description="Region code for Xagħra.")) + setattr(cls, "MT-62", + PermissibleValue( + text="MT-62", + description="Region code for Xewkija.")) + setattr(cls, "MT-63", + PermissibleValue( + text="MT-63", + description="Region code for Xgħajra.")) + setattr(cls, "MT-64", + PermissibleValue( + text="MT-64", + description="Region code for Żabbar.")) + setattr(cls, "MT-65", + PermissibleValue( + text="MT-65", + description="Region code for Żebbuġ Gozo.")) + setattr(cls, "MT-66", + PermissibleValue( + text="MT-66", + description="Region code for Żebbuġ Malta.")) + setattr(cls, "MT-67", + PermissibleValue( + text="MT-67", + description="Region code for Żejtun.")) + setattr(cls, "MT-68", + PermissibleValue( + text="MT-68", + description="Region code for Żurrieq.")) + setattr(cls, "MU-AG", + PermissibleValue( + text="MU-AG", + description="Region code for Agalega Islands.")) + setattr(cls, "MU-BL", + PermissibleValue( + text="MU-BL", + description="Region code for Black River.")) + setattr(cls, "MU-CC", + PermissibleValue( + text="MU-CC", + description="Region code for Cargados Carajos Shoals.")) + setattr(cls, "MU-FL", + PermissibleValue( + text="MU-FL", + description="Region code for Flacq.")) + setattr(cls, "MU-GP", + PermissibleValue( + text="MU-GP", + description="Region code for Grand Port.")) + setattr(cls, "MU-MO", + PermissibleValue( + text="MU-MO", + description="Region code for Moka.")) + setattr(cls, "MU-PA", + PermissibleValue( + text="MU-PA", + description="Region code for Pamplemousses.")) + setattr(cls, "MU-PL", + PermissibleValue( + text="MU-PL", + description="Region code for Port Louis.")) + setattr(cls, "MU-PW", + PermissibleValue( + text="MU-PW", + description="Region code for Plaines Wilhems.")) + setattr(cls, "MU-RO", + PermissibleValue( + text="MU-RO", + description="Region code for Rodrigues Island.")) + setattr(cls, "MU-RR", + PermissibleValue( + text="MU-RR", + description="Region code for Rivière du Rempart.")) + setattr(cls, "MU-SA", + PermissibleValue( + text="MU-SA", + description="Region code for Savanne.")) + setattr(cls, "MV-00", + PermissibleValue( + text="MV-00", + description="Region code for Ariatholhu Dhekunuburi.")) + setattr(cls, "MV-01", + PermissibleValue( + text="MV-01", + description="Region code for Addu.")) + setattr(cls, "MV-02", + PermissibleValue( + text="MV-02", + description="Region code for Ariatholhu Uthuruburi.")) + setattr(cls, "MV-03", + PermissibleValue( + text="MV-03", + description="Region code for Faadhippolhu.")) + setattr(cls, "MV-04", + PermissibleValue( + text="MV-04", + description="Region code for Felidheatholhu.")) + setattr(cls, "MV-05", + PermissibleValue( + text="MV-05", + description="Region code for Hahdhunmathi.")) + setattr(cls, "MV-07", + PermissibleValue( + text="MV-07", + description="Region code for Thiladhunmathee Uthuruburi.")) + setattr(cls, "MV-08", + PermissibleValue( + text="MV-08", + description="Region code for Kolhumadulu.")) + setattr(cls, "MV-12", + PermissibleValue( + text="MV-12", + description="Region code for Mulakatholhu.")) + setattr(cls, "MV-13", + PermissibleValue( + text="MV-13", + description="Region code for Maalhosmadulu Uthuruburi.")) + setattr(cls, "MV-14", + PermissibleValue( + text="MV-14", + description="Region code for Nilandheatholhu Uthuruburi.")) + setattr(cls, "MV-17", + PermissibleValue( + text="MV-17", + description="Region code for Nilandheatholhu Dhekunuburi.")) + setattr(cls, "MV-20", + PermissibleValue( + text="MV-20", + description="Region code for Maalhosmadulu Dhekunuburi.")) + setattr(cls, "MV-23", + PermissibleValue( + text="MV-23", + description="Region code for Thiladhunmathee Dhekunuburi.")) + setattr(cls, "MV-24", + PermissibleValue( + text="MV-24", + description="Region code for Miladhunmadulu Uthuruburi.")) + setattr(cls, "MV-25", + PermissibleValue( + text="MV-25", + description="Region code for Miladhunmadulu Dhekunuburi.")) + setattr(cls, "MV-26", + PermissibleValue( + text="MV-26", + description="Region code for Maaleatholhu.")) + setattr(cls, "MV-27", + PermissibleValue( + text="MV-27", + description="Region code for Huvadhuatholhu Uthuruburi.")) + setattr(cls, "MV-28", + PermissibleValue( + text="MV-28", + description="Region code for Huvadhuatholhu Dhekunuburi.")) + setattr(cls, "MV-29", + PermissibleValue( + text="MV-29", + description="Region code for Fuvammulah.")) + setattr(cls, "MV-MLE", + PermissibleValue( + text="MV-MLE", + description="Region code for Maale.")) + setattr(cls, "MW-BA", + PermissibleValue( + text="MW-BA", + description="Region code for Balaka.")) + setattr(cls, "MW-BL", + PermissibleValue( + text="MW-BL", + description="Region code for Blantyre.")) + setattr(cls, "MW-C", + PermissibleValue( + text="MW-C", + description="Region code for Central Region.")) + setattr(cls, "MW-CK", + PermissibleValue( + text="MW-CK", + description="Region code for Chikwawa.")) + setattr(cls, "MW-CR", + PermissibleValue( + text="MW-CR", + description="Region code for Chiradzulu.")) + setattr(cls, "MW-CT", + PermissibleValue( + text="MW-CT", + description="Region code for Chitipa.")) + setattr(cls, "MW-DE", + PermissibleValue( + text="MW-DE", + description="Region code for Dedza.")) + setattr(cls, "MW-DO", + PermissibleValue( + text="MW-DO", + description="Region code for Dowa.")) + setattr(cls, "MW-KR", + PermissibleValue( + text="MW-KR", + description="Region code for Karonga.")) + setattr(cls, "MW-KS", + PermissibleValue( + text="MW-KS", + description="Region code for Kasungu.")) + setattr(cls, "MW-LI", + PermissibleValue( + text="MW-LI", + description="Region code for Lilongwe.")) + setattr(cls, "MW-LK", + PermissibleValue( + text="MW-LK", + description="Region code for Likoma.")) + setattr(cls, "MW-MC", + PermissibleValue( + text="MW-MC", + description="Region code for Mchinji.")) + setattr(cls, "MW-MG", + PermissibleValue( + text="MW-MG", + description="Region code for Mangochi.")) + setattr(cls, "MW-MH", + PermissibleValue( + text="MW-MH", + description="Region code for Machinga.")) + setattr(cls, "MW-MU", + PermissibleValue( + text="MW-MU", + description="Region code for Mulanje.")) + setattr(cls, "MW-MW", + PermissibleValue( + text="MW-MW", + description="Region code for Mwanza.")) + setattr(cls, "MW-MZ", + PermissibleValue( + text="MW-MZ", + description="Region code for Mzimba.")) + setattr(cls, "MW-N", + PermissibleValue( + text="MW-N", + description="Region code for Northern Region.")) + setattr(cls, "MW-NB", + PermissibleValue( + text="MW-NB", + description="Region code for Nkhata Bay.")) + setattr(cls, "MW-NE", + PermissibleValue( + text="MW-NE", + description="Region code for Neno.")) + setattr(cls, "MW-NI", + PermissibleValue( + text="MW-NI", + description="Region code for Ntchisi.")) + setattr(cls, "MW-NK", + PermissibleValue( + text="MW-NK", + description="Region code for Nkhotakota.")) + setattr(cls, "MW-NS", + PermissibleValue( + text="MW-NS", + description="Region code for Nsanje.")) + setattr(cls, "MW-NU", + PermissibleValue( + text="MW-NU", + description="Region code for Ntcheu.")) + setattr(cls, "MW-PH", + PermissibleValue( + text="MW-PH", + description="Region code for Phalombe.")) + setattr(cls, "MW-RU", + PermissibleValue( + text="MW-RU", + description="Region code for Rumphi.")) + setattr(cls, "MW-S", + PermissibleValue( + text="MW-S", + description="Region code for Southern Region.")) + setattr(cls, "MW-SA", + PermissibleValue( + text="MW-SA", + description="Region code for Salima.")) + setattr(cls, "MW-TH", + PermissibleValue( + text="MW-TH", + description="Region code for Thyolo.")) + setattr(cls, "MW-ZO", + PermissibleValue( + text="MW-ZO", + description="Region code for Zomba.")) + setattr(cls, "MX-AGU", + PermissibleValue( + text="MX-AGU", + description="Region code for Aguascalientes.")) + setattr(cls, "MX-BCN", + PermissibleValue( + text="MX-BCN", + description="Region code for Baja California.")) + setattr(cls, "MX-BCS", + PermissibleValue( + text="MX-BCS", + description="Region code for Baja California Sur.")) + setattr(cls, "MX-CAM", + PermissibleValue( + text="MX-CAM", + description="Region code for Campeche.")) + setattr(cls, "MX-CHH", + PermissibleValue( + text="MX-CHH", + description="Region code for Chihuahua.")) + setattr(cls, "MX-CHP", + PermissibleValue( + text="MX-CHP", + description="Region code for Chiapas.")) + setattr(cls, "MX-CMX", + PermissibleValue( + text="MX-CMX", + description="Region code for Ciudad de México.")) + setattr(cls, "MX-COA", + PermissibleValue( + text="MX-COA", + description="Region code for Coahuila de Zaragoza.")) + setattr(cls, "MX-COL", + PermissibleValue( + text="MX-COL", + description="Region code for Colima.")) + setattr(cls, "MX-DUR", + PermissibleValue( + text="MX-DUR", + description="Region code for Durango.")) + setattr(cls, "MX-GRO", + PermissibleValue( + text="MX-GRO", + description="Region code for Guerrero.")) + setattr(cls, "MX-GUA", + PermissibleValue( + text="MX-GUA", + description="Region code for Guanajuato.")) + setattr(cls, "MX-HID", + PermissibleValue( + text="MX-HID", + description="Region code for Hidalgo.")) + setattr(cls, "MX-JAL", + PermissibleValue( + text="MX-JAL", + description="Region code for Jalisco.")) + setattr(cls, "MX-MEX", + PermissibleValue( + text="MX-MEX", + description="Region code for México.")) + setattr(cls, "MX-MIC", + PermissibleValue( + text="MX-MIC", + description="Region code for Michoacán de Ocampo.")) + setattr(cls, "MX-MOR", + PermissibleValue( + text="MX-MOR", + description="Region code for Morelos.")) + setattr(cls, "MX-NAY", + PermissibleValue( + text="MX-NAY", + description="Region code for Nayarit.")) + setattr(cls, "MX-NLE", + PermissibleValue( + text="MX-NLE", + description="Region code for Nuevo León.")) + setattr(cls, "MX-OAX", + PermissibleValue( + text="MX-OAX", + description="Region code for Oaxaca.")) + setattr(cls, "MX-PUE", + PermissibleValue( + text="MX-PUE", + description="Region code for Puebla.")) + setattr(cls, "MX-QUE", + PermissibleValue( + text="MX-QUE", + description="Region code for Querétaro.")) + setattr(cls, "MX-ROO", + PermissibleValue( + text="MX-ROO", + description="Region code for Quintana Roo.")) + setattr(cls, "MX-SIN", + PermissibleValue( + text="MX-SIN", + description="Region code for Sinaloa.")) + setattr(cls, "MX-SLP", + PermissibleValue( + text="MX-SLP", + description="Region code for San Luis Potosí.")) + setattr(cls, "MX-SON", + PermissibleValue( + text="MX-SON", + description="Region code for Sonora.")) + setattr(cls, "MX-TAB", + PermissibleValue( + text="MX-TAB", + description="Region code for Tabasco.")) + setattr(cls, "MX-TAM", + PermissibleValue( + text="MX-TAM", + description="Region code for Tamaulipas.")) + setattr(cls, "MX-TLA", + PermissibleValue( + text="MX-TLA", + description="Region code for Tlaxcala.")) + setattr(cls, "MX-VER", + PermissibleValue( + text="MX-VER", + description="Region code for Veracruz de Ignacio de la Llave.")) + setattr(cls, "MX-YUC", + PermissibleValue( + text="MX-YUC", + description="Region code for Yucatán.")) + setattr(cls, "MX-ZAC", + PermissibleValue( + text="MX-ZAC", + description="Region code for Zacatecas.")) + setattr(cls, "MY-01", + PermissibleValue( + text="MY-01", + description="Region code for Johor.")) + setattr(cls, "MY-02", + PermissibleValue( + text="MY-02", + description="Region code for Kedah.")) + setattr(cls, "MY-03", + PermissibleValue( + text="MY-03", + description="Region code for Kelantan.")) + setattr(cls, "MY-04", + PermissibleValue( + text="MY-04", + description="Region code for Melaka.")) + setattr(cls, "MY-05", + PermissibleValue( + text="MY-05", + description="Region code for Negeri Sembilan.")) + setattr(cls, "MY-06", + PermissibleValue( + text="MY-06", + description="Region code for Pahang.")) + setattr(cls, "MY-07", + PermissibleValue( + text="MY-07", + description="Region code for Pulau Pinang.")) + setattr(cls, "MY-08", + PermissibleValue( + text="MY-08", + description="Region code for Perak.")) + setattr(cls, "MY-09", + PermissibleValue( + text="MY-09", + description="Region code for Perlis.")) + setattr(cls, "MY-10", + PermissibleValue( + text="MY-10", + description="Region code for Selangor.")) + setattr(cls, "MY-11", + PermissibleValue( + text="MY-11", + description="Region code for Terengganu.")) + setattr(cls, "MY-12", + PermissibleValue( + text="MY-12", + description="Region code for Sabah.")) + setattr(cls, "MY-13", + PermissibleValue( + text="MY-13", + description="Region code for Sarawak.")) + setattr(cls, "MY-14", + PermissibleValue( + text="MY-14", + description="Region code for Wilayah Persekutuan Kuala Lumpur.")) + setattr(cls, "MY-15", + PermissibleValue( + text="MY-15", + description="Region code for Wilayah Persekutuan Labuan.")) + setattr(cls, "MY-16", + PermissibleValue( + text="MY-16", + description="Region code for Wilayah Persekutuan Putrajaya.")) + setattr(cls, "MZ-A", + PermissibleValue( + text="MZ-A", + description="Region code for Niassa.")) + setattr(cls, "MZ-B", + PermissibleValue( + text="MZ-B", + description="Region code for Manica.")) + setattr(cls, "MZ-G", + PermissibleValue( + text="MZ-G", + description="Region code for Gaza.")) + setattr(cls, "MZ-I", + PermissibleValue( + text="MZ-I", + description="Region code for Inhambane.")) + setattr(cls, "MZ-L", + PermissibleValue( + text="MZ-L", + description="Region code for Maputo.")) + setattr(cls, "MZ-MPM", + PermissibleValue( + text="MZ-MPM", + description="Region code for Maputo.")) + setattr(cls, "MZ-N", + PermissibleValue( + text="MZ-N", + description="Region code for Nampula.")) + setattr(cls, "MZ-P", + PermissibleValue( + text="MZ-P", + description="Region code for Cabo Delgado.")) + setattr(cls, "MZ-Q", + PermissibleValue( + text="MZ-Q", + description="Region code for Zambézia.")) + setattr(cls, "MZ-S", + PermissibleValue( + text="MZ-S", + description="Region code for Sofala.")) + setattr(cls, "MZ-T", + PermissibleValue( + text="MZ-T", + description="Region code for Tete.")) + setattr(cls, "NA-CA", + PermissibleValue( + text="NA-CA", + description="Region code for Zambezi.")) + setattr(cls, "NA-ER", + PermissibleValue( + text="NA-ER", + description="Region code for Erongo.")) + setattr(cls, "NA-HA", + PermissibleValue( + text="NA-HA", + description="Region code for Hardap.")) + setattr(cls, "NA-KA", + PermissibleValue( + text="NA-KA", + description="Region code for //Karas.")) + setattr(cls, "NA-KE", + PermissibleValue( + text="NA-KE", + description="Region code for Kavango East.")) + setattr(cls, "NA-KH", + PermissibleValue( + text="NA-KH", + description="Region code for Khomas.")) + setattr(cls, "NA-KU", + PermissibleValue( + text="NA-KU", + description="Region code for Kunene.")) + setattr(cls, "NA-KW", + PermissibleValue( + text="NA-KW", + description="Region code for Kavango West.")) + setattr(cls, "NA-OD", + PermissibleValue( + text="NA-OD", + description="Region code for Otjozondjupa.")) + setattr(cls, "NA-OH", + PermissibleValue( + text="NA-OH", + description="Region code for Omaheke.")) + setattr(cls, "NA-ON", + PermissibleValue( + text="NA-ON", + description="Region code for Oshana.")) + setattr(cls, "NA-OS", + PermissibleValue( + text="NA-OS", + description="Region code for Omusati.")) + setattr(cls, "NA-OT", + PermissibleValue( + text="NA-OT", + description="Region code for Oshikoto.")) + setattr(cls, "NA-OW", + PermissibleValue( + text="NA-OW", + description="Region code for Ohangwena.")) + setattr(cls, "NE-1", + PermissibleValue( + text="NE-1", + description="Region code for Agadez.")) + setattr(cls, "NE-2", + PermissibleValue( + text="NE-2", + description="Region code for Diffa.")) + setattr(cls, "NE-3", + PermissibleValue( + text="NE-3", + description="Region code for Dosso.")) + setattr(cls, "NE-4", + PermissibleValue( + text="NE-4", + description="Region code for Maradi.")) + setattr(cls, "NE-5", + PermissibleValue( + text="NE-5", + description="Region code for Tahoua.")) + setattr(cls, "NE-6", + PermissibleValue( + text="NE-6", + description="Region code for Tillabéri.")) + setattr(cls, "NE-7", + PermissibleValue( + text="NE-7", + description="Region code for Zinder.")) + setattr(cls, "NE-8", + PermissibleValue( + text="NE-8", + description="Region code for Niamey.")) + setattr(cls, "NG-AB", + PermissibleValue( + text="NG-AB", + description="Region code for Abia.")) + setattr(cls, "NG-AD", + PermissibleValue( + text="NG-AD", + description="Region code for Adamawa.")) + setattr(cls, "NG-AK", + PermissibleValue( + text="NG-AK", + description="Region code for Akwa Ibom.")) + setattr(cls, "NG-AN", + PermissibleValue( + text="NG-AN", + description="Region code for Anambra.")) + setattr(cls, "NG-BA", + PermissibleValue( + text="NG-BA", + description="Region code for Bauchi.")) + setattr(cls, "NG-BE", + PermissibleValue( + text="NG-BE", + description="Region code for Benue.")) + setattr(cls, "NG-BO", + PermissibleValue( + text="NG-BO", + description="Region code for Borno.")) + setattr(cls, "NG-BY", + PermissibleValue( + text="NG-BY", + description="Region code for Bayelsa.")) + setattr(cls, "NG-CR", + PermissibleValue( + text="NG-CR", + description="Region code for Cross River.")) + setattr(cls, "NG-DE", + PermissibleValue( + text="NG-DE", + description="Region code for Delta.")) + setattr(cls, "NG-EB", + PermissibleValue( + text="NG-EB", + description="Region code for Ebonyi.")) + setattr(cls, "NG-ED", + PermissibleValue( + text="NG-ED", + description="Region code for Edo.")) + setattr(cls, "NG-EK", + PermissibleValue( + text="NG-EK", + description="Region code for Ekiti.")) + setattr(cls, "NG-EN", + PermissibleValue( + text="NG-EN", + description="Region code for Enugu.")) + setattr(cls, "NG-FC", + PermissibleValue( + text="NG-FC", + description="Region code for Abuja Federal Capital Territory.")) + setattr(cls, "NG-GO", + PermissibleValue( + text="NG-GO", + description="Region code for Gombe.")) + setattr(cls, "NG-IM", + PermissibleValue( + text="NG-IM", + description="Region code for Imo.")) + setattr(cls, "NG-JI", + PermissibleValue( + text="NG-JI", + description="Region code for Jigawa.")) + setattr(cls, "NG-KD", + PermissibleValue( + text="NG-KD", + description="Region code for Kaduna.")) + setattr(cls, "NG-KE", + PermissibleValue( + text="NG-KE", + description="Region code for Kebbi.")) + setattr(cls, "NG-KN", + PermissibleValue( + text="NG-KN", + description="Region code for Kano.")) + setattr(cls, "NG-KO", + PermissibleValue( + text="NG-KO", + description="Region code for Kogi.")) + setattr(cls, "NG-KT", + PermissibleValue( + text="NG-KT", + description="Region code for Katsina.")) + setattr(cls, "NG-KW", + PermissibleValue( + text="NG-KW", + description="Region code for Kwara.")) + setattr(cls, "NG-LA", + PermissibleValue( + text="NG-LA", + description="Region code for Lagos.")) + setattr(cls, "NG-NA", + PermissibleValue( + text="NG-NA", + description="Region code for Nasarawa.")) + setattr(cls, "NG-NI", + PermissibleValue( + text="NG-NI", + description="Region code for Niger.")) + setattr(cls, "NG-OG", + PermissibleValue( + text="NG-OG", + description="Region code for Ogun.")) + setattr(cls, "NG-ON", + PermissibleValue( + text="NG-ON", + description="Region code for Ondo.")) + setattr(cls, "NG-OS", + PermissibleValue( + text="NG-OS", + description="Region code for Osun.")) + setattr(cls, "NG-OY", + PermissibleValue( + text="NG-OY", + description="Region code for Oyo.")) + setattr(cls, "NG-PL", + PermissibleValue( + text="NG-PL", + description="Region code for Plateau.")) + setattr(cls, "NG-RI", + PermissibleValue( + text="NG-RI", + description="Region code for Rivers.")) + setattr(cls, "NG-SO", + PermissibleValue( + text="NG-SO", + description="Region code for Sokoto.")) + setattr(cls, "NG-TA", + PermissibleValue( + text="NG-TA", + description="Region code for Taraba.")) + setattr(cls, "NG-YO", + PermissibleValue( + text="NG-YO", + description="Region code for Yobe.")) + setattr(cls, "NG-ZA", + PermissibleValue( + text="NG-ZA", + description="Region code for Zamfara.")) + setattr(cls, "NI-AN", + PermissibleValue( + text="NI-AN", + description="Region code for Costa Caribe Norte.")) + setattr(cls, "NI-AS", + PermissibleValue( + text="NI-AS", + description="Region code for Costa Caribe Sur.")) + setattr(cls, "NI-BO", + PermissibleValue( + text="NI-BO", + description="Region code for Boaco.")) + setattr(cls, "NI-CA", + PermissibleValue( + text="NI-CA", + description="Region code for Carazo.")) + setattr(cls, "NI-CI", + PermissibleValue( + text="NI-CI", + description="Region code for Chinandega.")) + setattr(cls, "NI-CO", + PermissibleValue( + text="NI-CO", + description="Region code for Chontales.")) + setattr(cls, "NI-ES", + PermissibleValue( + text="NI-ES", + description="Region code for Estelí.")) + setattr(cls, "NI-GR", + PermissibleValue( + text="NI-GR", + description="Region code for Granada.")) + setattr(cls, "NI-JI", + PermissibleValue( + text="NI-JI", + description="Region code for Jinotega.")) + setattr(cls, "NI-LE", + PermissibleValue( + text="NI-LE", + description="Region code for León.")) + setattr(cls, "NI-MD", + PermissibleValue( + text="NI-MD", + description="Region code for Madriz.")) + setattr(cls, "NI-MN", + PermissibleValue( + text="NI-MN", + description="Region code for Managua.")) + setattr(cls, "NI-MS", + PermissibleValue( + text="NI-MS", + description="Region code for Masaya.")) + setattr(cls, "NI-MT", + PermissibleValue( + text="NI-MT", + description="Region code for Matagalpa.")) + setattr(cls, "NI-NS", + PermissibleValue( + text="NI-NS", + description="Region code for Nueva Segovia.")) + setattr(cls, "NI-RI", + PermissibleValue( + text="NI-RI", + description="Region code for Rivas.")) + setattr(cls, "NI-SJ", + PermissibleValue( + text="NI-SJ", + description="Region code for Río San Juan.")) + setattr(cls, "NL-AW", + PermissibleValue( + text="NL-AW", + description="Region code for Aruba (see also separate country code entry under AW).")) + setattr(cls, "NL-BQ1", + PermissibleValue( + text="NL-BQ1", + description="Region code for Bonaire (see also separate country code entry under BQ).")) + setattr(cls, "NL-BQ2", + PermissibleValue( + text="NL-BQ2", + description="Region code for Saba (see also separate country code entry under BQ).")) + setattr(cls, "NL-BQ3", + PermissibleValue( + text="NL-BQ3", + description="Region code for Sint Eustatius (see also separate country code entry under BQ).")) + setattr(cls, "NL-CW", + PermissibleValue( + text="NL-CW", + description="Region code for Curaçao (see also separate country code entry under CW).")) + setattr(cls, "NL-DR", + PermissibleValue( + text="NL-DR", + description="Region code for Drenthe.")) + setattr(cls, "NL-FL", + PermissibleValue( + text="NL-FL", + description="Region code for Flevoland.")) + setattr(cls, "NL-FR", + PermissibleValue( + text="NL-FR", + description="Region code for Fryslân.")) + setattr(cls, "NL-GE", + PermissibleValue( + text="NL-GE", + description="Region code for Gelderland.")) + setattr(cls, "NL-GR", + PermissibleValue( + text="NL-GR", + description="Region code for Groningen.")) + setattr(cls, "NL-LI", + PermissibleValue( + text="NL-LI", + description="Region code for Limburg.")) + setattr(cls, "NL-NB", + PermissibleValue( + text="NL-NB", + description="Region code for Noord-Brabant.")) + setattr(cls, "NL-NH", + PermissibleValue( + text="NL-NH", + description="Region code for Noord-Holland.")) + setattr(cls, "NL-OV", + PermissibleValue( + text="NL-OV", + description="Region code for Overijssel.")) + setattr(cls, "NL-SX", + PermissibleValue( + text="NL-SX", + description="Region code for Sint Maarten (see also separate country code entry under SX).")) + setattr(cls, "NL-UT", + PermissibleValue( + text="NL-UT", + description="Region code for Utrecht.")) + setattr(cls, "NL-ZE", + PermissibleValue( + text="NL-ZE", + description="Region code for Zeeland.")) + setattr(cls, "NL-ZH", + PermissibleValue( + text="NL-ZH", + description="Region code for Zuid-Holland.")) + setattr(cls, "NO-03", + PermissibleValue( + text="NO-03", + description="Region code for Oslo.")) + setattr(cls, "NO-11", + PermissibleValue( + text="NO-11", + description="Region code for Rogaland.")) + setattr(cls, "NO-15", + PermissibleValue( + text="NO-15", + description="Region code for Møre og Romsdal.")) + setattr(cls, "NO-18", + PermissibleValue( + text="NO-18", + description="Region code for Nordland.")) + setattr(cls, "NO-21", + PermissibleValue( + text="NO-21", + description="""Region code for Svalbard (Arctic Region) (see also separate country code entry under SJ).""")) + setattr(cls, "NO-22", + PermissibleValue( + text="NO-22", + description="""Region code for Jan Mayen (Arctic Region) (see also separate country code entry under SJ).""")) + setattr(cls, "NO-30", + PermissibleValue( + text="NO-30", + description="Region code for Viken.")) + setattr(cls, "NO-34", + PermissibleValue( + text="NO-34", + description="Region code for Innlandet.")) + setattr(cls, "NO-38", + PermissibleValue( + text="NO-38", + description="Region code for Vestfold og Telemark.")) + setattr(cls, "NO-42", + PermissibleValue( + text="NO-42", + description="Region code for Agder.")) + setattr(cls, "NO-46", + PermissibleValue( + text="NO-46", + description="Region code for Vestland.")) + setattr(cls, "NO-50", + PermissibleValue( + text="NO-50", + description="Region code for Trøndelag.")) + setattr(cls, "NO-54", + PermissibleValue( + text="NO-54", + description="Region code for Tromssan ja Finmarkun.")) + setattr(cls, "NP-P1", + PermissibleValue( + text="NP-P1", + description="Region code for Koshi.")) + setattr(cls, "NP-P2", + PermissibleValue( + text="NP-P2", + description="Region code for Madhesh.")) + setattr(cls, "NP-P3", + PermissibleValue( + text="NP-P3", + description="Region code for Bagmati.")) + setattr(cls, "NP-P4", + PermissibleValue( + text="NP-P4", + description="Region code for Gandaki.")) + setattr(cls, "NP-P5", + PermissibleValue( + text="NP-P5", + description="Region code for Lumbini.")) + setattr(cls, "NP-P6", + PermissibleValue( + text="NP-P6", + description="Region code for Karnali.")) + setattr(cls, "NP-P7", + PermissibleValue( + text="NP-P7", + description="Region code for Sudurpashchim.")) + setattr(cls, "NR-01", + PermissibleValue( + text="NR-01", + description="Region code for Aiwo.")) + setattr(cls, "NR-02", + PermissibleValue( + text="NR-02", + description="Region code for Anabar.")) + setattr(cls, "NR-03", + PermissibleValue( + text="NR-03", + description="Region code for Anetan.")) + setattr(cls, "NR-04", + PermissibleValue( + text="NR-04", + description="Region code for Anibare.")) + setattr(cls, "NR-05", + PermissibleValue( + text="NR-05", + description="Region code for Baitsi.")) + setattr(cls, "NR-06", + PermissibleValue( + text="NR-06", + description="Region code for Boe.")) + setattr(cls, "NR-07", + PermissibleValue( + text="NR-07", + description="Region code for Buada.")) + setattr(cls, "NR-08", + PermissibleValue( + text="NR-08", + description="Region code for Denigomodu.")) + setattr(cls, "NR-09", + PermissibleValue( + text="NR-09", + description="Region code for Ewa.")) + setattr(cls, "NR-10", + PermissibleValue( + text="NR-10", + description="Region code for Ijuw.")) + setattr(cls, "NR-11", + PermissibleValue( + text="NR-11", + description="Region code for Meneng.")) + setattr(cls, "NR-12", + PermissibleValue( + text="NR-12", + description="Region code for Nibok.")) + setattr(cls, "NR-13", + PermissibleValue( + text="NR-13", + description="Region code for Uaboe.")) + setattr(cls, "NR-14", + PermissibleValue( + text="NR-14", + description="Region code for Yaren.")) + setattr(cls, "NZ-AUK", + PermissibleValue( + text="NZ-AUK", + description="Region code for Auckland.")) + setattr(cls, "NZ-BOP", + PermissibleValue( + text="NZ-BOP", + description="Region code for Bay of Plenty.")) + setattr(cls, "NZ-CAN", + PermissibleValue( + text="NZ-CAN", + description="Region code for Canterbury.")) + setattr(cls, "NZ-CIT", + PermissibleValue( + text="NZ-CIT", + description="Region code for Chatham Islands Territory.")) + setattr(cls, "NZ-GIS", + PermissibleValue( + text="NZ-GIS", + description="Region code for Gisborne.")) + setattr(cls, "NZ-HKB", + PermissibleValue( + text="NZ-HKB", + description="Region code for Hawke's Bay.")) + setattr(cls, "NZ-MBH", + PermissibleValue( + text="NZ-MBH", + description="Region code for Marlborough.")) + setattr(cls, "NZ-MWT", + PermissibleValue( + text="NZ-MWT", + description="Region code for Manawatū-Whanganui.")) + setattr(cls, "NZ-NSN", + PermissibleValue( + text="NZ-NSN", + description="Region code for Nelson.")) + setattr(cls, "NZ-NTL", + PermissibleValue( + text="NZ-NTL", + description="Region code for Northland.")) + setattr(cls, "NZ-OTA", + PermissibleValue( + text="NZ-OTA", + description="Region code for Otago.")) + setattr(cls, "NZ-STL", + PermissibleValue( + text="NZ-STL", + description="Region code for Southland.")) + setattr(cls, "NZ-TAS", + PermissibleValue( + text="NZ-TAS", + description="Region code for Tasman.")) + setattr(cls, "NZ-TKI", + PermissibleValue( + text="NZ-TKI", + description="Region code for Taranaki.")) + setattr(cls, "NZ-WGN", + PermissibleValue( + text="NZ-WGN", + description="Region code for Greater Wellington.")) + setattr(cls, "NZ-WKO", + PermissibleValue( + text="NZ-WKO", + description="Region code for Waikato.")) + setattr(cls, "NZ-WTC", + PermissibleValue( + text="NZ-WTC", + description="Region code for West Coast.")) + setattr(cls, "OM-BJ", + PermissibleValue( + text="OM-BJ", + description="Region code for Janūb al Bāţinah.")) + setattr(cls, "OM-BS", + PermissibleValue( + text="OM-BS", + description="Region code for Shamāl al Bāţinah.")) + setattr(cls, "OM-BU", + PermissibleValue( + text="OM-BU", + description="Region code for Al Buraymī.")) + setattr(cls, "OM-DA", + PermissibleValue( + text="OM-DA", + description="Region code for Ad Dākhilīyah.")) + setattr(cls, "OM-MA", + PermissibleValue( + text="OM-MA", + description="Region code for Masqaţ.")) + setattr(cls, "OM-MU", + PermissibleValue( + text="OM-MU", + description="Region code for Musandam.")) + setattr(cls, "OM-SJ", + PermissibleValue( + text="OM-SJ", + description="Region code for Janūb ash Sharqīyah.")) + setattr(cls, "OM-SS", + PermissibleValue( + text="OM-SS", + description="Region code for Shamāl ash Sharqīyah.")) + setattr(cls, "OM-WU", + PermissibleValue( + text="OM-WU", + description="Region code for Al Wusţá.")) + setattr(cls, "OM-ZA", + PermissibleValue( + text="OM-ZA", + description="Region code for Az̧ Z̧āhirah.")) + setattr(cls, "OM-ZU", + PermissibleValue( + text="OM-ZU", + description="Region code for Z̧ufār.")) + setattr(cls, "PA-1", + PermissibleValue( + text="PA-1", + description="Region code for Bocas del Toro.")) + setattr(cls, "PA-10", + PermissibleValue( + text="PA-10", + description="Region code for Panamá Oeste.")) + setattr(cls, "PA-2", + PermissibleValue( + text="PA-2", + description="Region code for Coclé.")) + setattr(cls, "PA-3", + PermissibleValue( + text="PA-3", + description="Region code for Colón.")) + setattr(cls, "PA-4", + PermissibleValue( + text="PA-4", + description="Region code for Chiriquí.")) + setattr(cls, "PA-5", + PermissibleValue( + text="PA-5", + description="Region code for Darién.")) + setattr(cls, "PA-6", + PermissibleValue( + text="PA-6", + description="Region code for Herrera.")) + setattr(cls, "PA-7", + PermissibleValue( + text="PA-7", + description="Region code for Los Santos.")) + setattr(cls, "PA-8", + PermissibleValue( + text="PA-8", + description="Region code for Panamá.")) + setattr(cls, "PA-9", + PermissibleValue( + text="PA-9", + description="Region code for Veraguas.")) + setattr(cls, "PA-EM", + PermissibleValue( + text="PA-EM", + description="Region code for Emberá.")) + setattr(cls, "PA-KY", + PermissibleValue( + text="PA-KY", + description="Region code for Guna Yala.")) + setattr(cls, "PA-NB", + PermissibleValue( + text="PA-NB", + description="Region code for Ngäbe-Buglé.")) + setattr(cls, "PA-NT", + PermissibleValue( + text="PA-NT", + description="Region code for Naso Tjër Di.")) + setattr(cls, "PE-AMA", + PermissibleValue( + text="PE-AMA", + description="Region code for Amasunu.")) + setattr(cls, "PE-ANC", + PermissibleValue( + text="PE-ANC", + description="Region code for Ankashu.")) + setattr(cls, "PE-APU", + PermissibleValue( + text="PE-APU", + description="Region code for Apurimaq.")) + setattr(cls, "PE-ARE", + PermissibleValue( + text="PE-ARE", + description="Region code for Arikipa.")) + setattr(cls, "PE-AYA", + PermissibleValue( + text="PE-AYA", + description="Region code for Ayaquchu.")) + setattr(cls, "PE-CAJ", + PermissibleValue( + text="PE-CAJ", + description="Region code for Qajamarka.")) + setattr(cls, "PE-CAL", + PermissibleValue( + text="PE-CAL", + description="Region code for Kallao.")) + setattr(cls, "PE-CUS", + PermissibleValue( + text="PE-CUS", + description="Region code for Kusku.")) + setattr(cls, "PE-HUC", + PermissibleValue( + text="PE-HUC", + description="Region code for Wanuku.")) + setattr(cls, "PE-HUV", + PermissibleValue( + text="PE-HUV", + description="Region code for Wankawelika.")) + setattr(cls, "PE-ICA", + PermissibleValue( + text="PE-ICA", + description="Region code for Ika.")) + setattr(cls, "PE-JUN", + PermissibleValue( + text="PE-JUN", + description="Region code for Junin.")) + setattr(cls, "PE-LAL", + PermissibleValue( + text="PE-LAL", + description="Region code for La Libertad.")) + setattr(cls, "PE-LAM", + PermissibleValue( + text="PE-LAM", + description="Region code for Lambayeque.")) + setattr(cls, "PE-LIM", + PermissibleValue( + text="PE-LIM", + description="Region code for Lima.")) + setattr(cls, "PE-LMA", + PermissibleValue( + text="PE-LMA", + description="Region code for Lima hatun llaqta.")) + setattr(cls, "PE-LOR", + PermissibleValue( + text="PE-LOR", + description="Region code for Luritu.")) + setattr(cls, "PE-MDD", + PermissibleValue( + text="PE-MDD", + description="Region code for Madre de Dios.")) + setattr(cls, "PE-MOQ", + PermissibleValue( + text="PE-MOQ", + description="Region code for Moqwegwa.")) + setattr(cls, "PE-PAS", + PermissibleValue( + text="PE-PAS", + description="Region code for Pasqu.")) + setattr(cls, "PE-PIU", + PermissibleValue( + text="PE-PIU", + description="Region code for Piura.")) + setattr(cls, "PE-PUN", + PermissibleValue( + text="PE-PUN", + description="Region code for Puno.")) + setattr(cls, "PE-SAM", + PermissibleValue( + text="PE-SAM", + description="Region code for San Martín.")) + setattr(cls, "PE-TAC", + PermissibleValue( + text="PE-TAC", + description="Region code for Takna.")) + setattr(cls, "PE-TUM", + PermissibleValue( + text="PE-TUM", + description="Region code for Tumbes.")) + setattr(cls, "PE-UCA", + PermissibleValue( + text="PE-UCA", + description="Region code for Ukayali.")) + setattr(cls, "PG-CPK", + PermissibleValue( + text="PG-CPK", + description="Region code for Chimbu.")) + setattr(cls, "PG-CPM", + PermissibleValue( + text="PG-CPM", + description="Region code for Central.")) + setattr(cls, "PG-EBR", + PermissibleValue( + text="PG-EBR", + description="Region code for East New Britain.")) + setattr(cls, "PG-EHG", + PermissibleValue( + text="PG-EHG", + description="Region code for Eastern Highlands.")) + setattr(cls, "PG-EPW", + PermissibleValue( + text="PG-EPW", + description="Region code for Enga.")) + setattr(cls, "PG-ESW", + PermissibleValue( + text="PG-ESW", + description="Region code for East Sepik.")) + setattr(cls, "PG-GPK", + PermissibleValue( + text="PG-GPK", + description="Region code for Gulf.")) + setattr(cls, "PG-HLA", + PermissibleValue( + text="PG-HLA", + description="Region code for Hela.")) + setattr(cls, "PG-JWK", + PermissibleValue( + text="PG-JWK", + description="Region code for Jiwaka.")) + setattr(cls, "PG-MBA", + PermissibleValue( + text="PG-MBA", + description="Region code for Milne Bay.")) + setattr(cls, "PG-MPL", + PermissibleValue( + text="PG-MPL", + description="Region code for Morobe.")) + setattr(cls, "PG-MPM", + PermissibleValue( + text="PG-MPM", + description="Region code for Madang.")) + setattr(cls, "PG-MRL", + PermissibleValue( + text="PG-MRL", + description="Region code for Manus.")) + setattr(cls, "PG-NCD", + PermissibleValue( + text="PG-NCD", + description="Region code for National Capital District (Port Moresby).")) + setattr(cls, "PG-NIK", + PermissibleValue( + text="PG-NIK", + description="Region code for New Ireland.")) + setattr(cls, "PG-NPP", + PermissibleValue( + text="PG-NPP", + description="Region code for Northern.")) + setattr(cls, "PG-NSB", + PermissibleValue( + text="PG-NSB", + description="Region code for Bougainville.")) + setattr(cls, "PG-SAN", + PermissibleValue( + text="PG-SAN", + description="Region code for West Sepik.")) + setattr(cls, "PG-SHM", + PermissibleValue( + text="PG-SHM", + description="Region code for Southern Highlands.")) + setattr(cls, "PG-WBK", + PermissibleValue( + text="PG-WBK", + description="Region code for West New Britain.")) + setattr(cls, "PG-WHM", + PermissibleValue( + text="PG-WHM", + description="Region code for Western Highlands.")) + setattr(cls, "PG-WPD", + PermissibleValue( + text="PG-WPD", + description="Region code for Western.")) + setattr(cls, "PH-00", + PermissibleValue( + text="PH-00", + description="Region code for National Capital Region.")) + setattr(cls, "PH-01", + PermissibleValue( + text="PH-01", + description="Region code for Ilocos (Region I).")) + setattr(cls, "PH-02", + PermissibleValue( + text="PH-02", + description="Region code for Cagayan Valley (Region II).")) + setattr(cls, "PH-03", + PermissibleValue( + text="PH-03", + description="Region code for Central Luzon (Region III).")) + setattr(cls, "PH-05", + PermissibleValue( + text="PH-05", + description="Region code for Bicol (Region V).")) + setattr(cls, "PH-06", + PermissibleValue( + text="PH-06", + description="Region code for Western Visayas (Region VI).")) + setattr(cls, "PH-07", + PermissibleValue( + text="PH-07", + description="Region code for Central Visayas (Region VII).")) + setattr(cls, "PH-08", + PermissibleValue( + text="PH-08", + description="Region code for Eastern Visayas (Region VIII).")) + setattr(cls, "PH-09", + PermissibleValue( + text="PH-09", + description="Region code for Zamboanga Peninsula (Region IX).")) + setattr(cls, "PH-10", + PermissibleValue( + text="PH-10", + description="Region code for Northern Mindanao (Region X).")) + setattr(cls, "PH-11", + PermissibleValue( + text="PH-11", + description="Region code for Davao (Region XI).")) + setattr(cls, "PH-12", + PermissibleValue( + text="PH-12", + description="Region code for Soccsksargen (Region XII).")) + setattr(cls, "PH-13", + PermissibleValue( + text="PH-13", + description="Region code for Caraga (Region XIII).")) + setattr(cls, "PH-14", + PermissibleValue( + text="PH-14", + description="Region code for Autonomous Region in Muslim Mindanao (ARMM).")) + setattr(cls, "PH-15", + PermissibleValue( + text="PH-15", + description="Region code for Cordillera Administrative Region (CAR).")) + setattr(cls, "PH-40", + PermissibleValue( + text="PH-40", + description="Region code for Calabarzon (Region IV-A).")) + setattr(cls, "PH-41", + PermissibleValue( + text="PH-41", + description="Region code for Mimaropa (Region IV-B).")) + setattr(cls, "PH-ABR", + PermissibleValue( + text="PH-ABR", + description="Region code for Abra.")) + setattr(cls, "PH-AGN", + PermissibleValue( + text="PH-AGN", + description="Region code for Agusan del Norte.")) + setattr(cls, "PH-AGS", + PermissibleValue( + text="PH-AGS", + description="Region code for Agusan del Sur.")) + setattr(cls, "PH-AKL", + PermissibleValue( + text="PH-AKL", + description="Region code for Aklan.")) + setattr(cls, "PH-ALB", + PermissibleValue( + text="PH-ALB", + description="Region code for Albay.")) + setattr(cls, "PH-ANT", + PermissibleValue( + text="PH-ANT", + description="Region code for Antique.")) + setattr(cls, "PH-APA", + PermissibleValue( + text="PH-APA", + description="Region code for Apayao.")) + setattr(cls, "PH-AUR", + PermissibleValue( + text="PH-AUR", + description="Region code for Aurora.")) + setattr(cls, "PH-BAN", + PermissibleValue( + text="PH-BAN", + description="Region code for Bataan.")) + setattr(cls, "PH-BAS", + PermissibleValue( + text="PH-BAS", + description="Region code for Basilan.")) + setattr(cls, "PH-BEN", + PermissibleValue( + text="PH-BEN", + description="Region code for Benguet.")) + setattr(cls, "PH-BIL", + PermissibleValue( + text="PH-BIL", + description="Region code for Biliran.")) + setattr(cls, "PH-BOH", + PermissibleValue( + text="PH-BOH", + description="Region code for Bohol.")) + setattr(cls, "PH-BTG", + PermissibleValue( + text="PH-BTG", + description="Region code for Batangas.")) + setattr(cls, "PH-BTN", + PermissibleValue( + text="PH-BTN", + description="Region code for Batanes.")) + setattr(cls, "PH-BUK", + PermissibleValue( + text="PH-BUK", + description="Region code for Bukidnon.")) + setattr(cls, "PH-BUL", + PermissibleValue( + text="PH-BUL", + description="Region code for Bulacan.")) + setattr(cls, "PH-CAG", + PermissibleValue( + text="PH-CAG", + description="Region code for Cagayan.")) + setattr(cls, "PH-CAM", + PermissibleValue( + text="PH-CAM", + description="Region code for Camiguin.")) + setattr(cls, "PH-CAN", + PermissibleValue( + text="PH-CAN", + description="Region code for Camarines Norte.")) + setattr(cls, "PH-CAP", + PermissibleValue( + text="PH-CAP", + description="Region code for Capiz.")) + setattr(cls, "PH-CAS", + PermissibleValue( + text="PH-CAS", + description="Region code for Camarines Sur.")) + setattr(cls, "PH-CAT", + PermissibleValue( + text="PH-CAT", + description="Region code for Catanduanes.")) + setattr(cls, "PH-CAV", + PermissibleValue( + text="PH-CAV", + description="Region code for Cavite.")) + setattr(cls, "PH-CEB", + PermissibleValue( + text="PH-CEB", + description="Region code for Cebu.")) + setattr(cls, "PH-COM", + PermissibleValue( + text="PH-COM", + description="Region code for Davao de Oro.")) + setattr(cls, "PH-DAO", + PermissibleValue( + text="PH-DAO", + description="Region code for Davao Oriental.")) + setattr(cls, "PH-DAS", + PermissibleValue( + text="PH-DAS", + description="Region code for Davao del Sur.")) + setattr(cls, "PH-DAV", + PermissibleValue( + text="PH-DAV", + description="Region code for Davao del Norte.")) + setattr(cls, "PH-DIN", + PermissibleValue( + text="PH-DIN", + description="Region code for Dinagat Islands.")) + setattr(cls, "PH-DVO", + PermissibleValue( + text="PH-DVO", + description="Region code for Davao Occidental.")) + setattr(cls, "PH-EAS", + PermissibleValue( + text="PH-EAS", + description="Region code for Eastern Samar.")) + setattr(cls, "PH-GUI", + PermissibleValue( + text="PH-GUI", + description="Region code for Guimaras.")) + setattr(cls, "PH-IFU", + PermissibleValue( + text="PH-IFU", + description="Region code for Ifugao.")) + setattr(cls, "PH-ILI", + PermissibleValue( + text="PH-ILI", + description="Region code for Iloilo.")) + setattr(cls, "PH-ILN", + PermissibleValue( + text="PH-ILN", + description="Region code for Ilocos Norte.")) + setattr(cls, "PH-ILS", + PermissibleValue( + text="PH-ILS", + description="Region code for Ilocos Sur.")) + setattr(cls, "PH-ISA", + PermissibleValue( + text="PH-ISA", + description="Region code for Isabela.")) + setattr(cls, "PH-KAL", + PermissibleValue( + text="PH-KAL", + description="Region code for Kalinga.")) + setattr(cls, "PH-LAG", + PermissibleValue( + text="PH-LAG", + description="Region code for Laguna.")) + setattr(cls, "PH-LAN", + PermissibleValue( + text="PH-LAN", + description="Region code for Lanao del Norte.")) + setattr(cls, "PH-LAS", + PermissibleValue( + text="PH-LAS", + description="Region code for Lanao del Sur.")) + setattr(cls, "PH-LEY", + PermissibleValue( + text="PH-LEY", + description="Region code for Leyte.")) + setattr(cls, "PH-LUN", + PermissibleValue( + text="PH-LUN", + description="Region code for La Union.")) + setattr(cls, "PH-MAD", + PermissibleValue( + text="PH-MAD", + description="Region code for Marinduque.")) + setattr(cls, "PH-MAS", + PermissibleValue( + text="PH-MAS", + description="Region code for Masbate.")) + setattr(cls, "PH-MDC", + PermissibleValue( + text="PH-MDC", + description="Region code for Mindoro Occidental.")) + setattr(cls, "PH-MDR", + PermissibleValue( + text="PH-MDR", + description="Region code for Mindoro Oriental.")) + setattr(cls, "PH-MGN", + PermissibleValue( + text="PH-MGN", + description="Region code for Maguindanao del Norte.")) + setattr(cls, "PH-MGS", + PermissibleValue( + text="PH-MGS", + description="Region code for Maguindanao del Sur.")) + setattr(cls, "PH-MOU", + PermissibleValue( + text="PH-MOU", + description="Region code for Mountain Province.")) + setattr(cls, "PH-MSC", + PermissibleValue( + text="PH-MSC", + description="Region code for Misamis Occidental.")) + setattr(cls, "PH-MSR", + PermissibleValue( + text="PH-MSR", + description="Region code for Misamis Oriental.")) + setattr(cls, "PH-NCO", + PermissibleValue( + text="PH-NCO", + description="Region code for Cotabato.")) + setattr(cls, "PH-NEC", + PermissibleValue( + text="PH-NEC", + description="Region code for Negros Occidental.")) + setattr(cls, "PH-NER", + PermissibleValue( + text="PH-NER", + description="Region code for Negros Oriental.")) + setattr(cls, "PH-NSA", + PermissibleValue( + text="PH-NSA", + description="Region code for Northern Samar.")) + setattr(cls, "PH-NUE", + PermissibleValue( + text="PH-NUE", + description="Region code for Nueva Ecija.")) + setattr(cls, "PH-NUV", + PermissibleValue( + text="PH-NUV", + description="Region code for Nueva Vizcaya.")) + setattr(cls, "PH-PAM", + PermissibleValue( + text="PH-PAM", + description="Region code for Pampanga.")) + setattr(cls, "PH-PAN", + PermissibleValue( + text="PH-PAN", + description="Region code for Pangasinan.")) + setattr(cls, "PH-PLW", + PermissibleValue( + text="PH-PLW", + description="Region code for Palawan.")) + setattr(cls, "PH-QUE", + PermissibleValue( + text="PH-QUE", + description="Region code for Quezon.")) + setattr(cls, "PH-QUI", + PermissibleValue( + text="PH-QUI", + description="Region code for Quirino.")) + setattr(cls, "PH-RIZ", + PermissibleValue( + text="PH-RIZ", + description="Region code for Rizal.")) + setattr(cls, "PH-ROM", + PermissibleValue( + text="PH-ROM", + description="Region code for Romblon.")) + setattr(cls, "PH-SAR", + PermissibleValue( + text="PH-SAR", + description="Region code for Sarangani.")) + setattr(cls, "PH-SCO", + PermissibleValue( + text="PH-SCO", + description="Region code for South Cotabato.")) + setattr(cls, "PH-SIG", + PermissibleValue( + text="PH-SIG", + description="Region code for Siquijor.")) + setattr(cls, "PH-SLE", + PermissibleValue( + text="PH-SLE", + description="Region code for Southern Leyte.")) + setattr(cls, "PH-SLU", + PermissibleValue( + text="PH-SLU", + description="Region code for Sulu.")) + setattr(cls, "PH-SOR", + PermissibleValue( + text="PH-SOR", + description="Region code for Sorsogon.")) + setattr(cls, "PH-SUK", + PermissibleValue( + text="PH-SUK", + description="Region code for Sultan Kudarat.")) + setattr(cls, "PH-SUN", + PermissibleValue( + text="PH-SUN", + description="Region code for Surigao del Norte.")) + setattr(cls, "PH-SUR", + PermissibleValue( + text="PH-SUR", + description="Region code for Surigao del Sur.")) + setattr(cls, "PH-TAR", + PermissibleValue( + text="PH-TAR", + description="Region code for Tarlac.")) + setattr(cls, "PH-TAW", + PermissibleValue( + text="PH-TAW", + description="Region code for Tawi-Tawi.")) + setattr(cls, "PH-WSA", + PermissibleValue( + text="PH-WSA", + description="Region code for Samar.")) + setattr(cls, "PH-ZAN", + PermissibleValue( + text="PH-ZAN", + description="Region code for Zamboanga del Norte.")) + setattr(cls, "PH-ZAS", + PermissibleValue( + text="PH-ZAS", + description="Region code for Zamboanga del Sur.")) + setattr(cls, "PH-ZMB", + PermissibleValue( + text="PH-ZMB", + description="Region code for Zambales.")) + setattr(cls, "PH-ZSI", + PermissibleValue( + text="PH-ZSI", + description="Region code for Zamboanga Sibugay.")) + setattr(cls, "PK-BA", + PermissibleValue( + text="PK-BA", + description="Region code for Balochistan.")) + setattr(cls, "PK-GB", + PermissibleValue( + text="PK-GB", + description="Region code for Gilgit-Baltistan.")) + setattr(cls, "PK-IS", + PermissibleValue( + text="PK-IS", + description="Region code for Islamabad.")) + setattr(cls, "PK-JK", + PermissibleValue( + text="PK-JK", + description="Region code for Azad Jammu and Kashmir.")) + setattr(cls, "PK-KP", + PermissibleValue( + text="PK-KP", + description="Region code for Khyber Pakhtunkhwa.")) + setattr(cls, "PK-PB", + PermissibleValue( + text="PK-PB", + description="Region code for Punjab.")) + setattr(cls, "PK-SD", + PermissibleValue( + text="PK-SD", + description="Region code for Sindh.")) + setattr(cls, "PL-02", + PermissibleValue( + text="PL-02", + description="Region code for Dolnośląskie.")) + setattr(cls, "PL-04", + PermissibleValue( + text="PL-04", + description="Region code for Kujawsko-Pomorskie.")) + setattr(cls, "PL-06", + PermissibleValue( + text="PL-06", + description="Region code for Lubelskie.")) + setattr(cls, "PL-08", + PermissibleValue( + text="PL-08", + description="Region code for Lubuskie.")) + setattr(cls, "PL-10", + PermissibleValue( + text="PL-10", + description="Region code for Łódzkie.")) + setattr(cls, "PL-12", + PermissibleValue( + text="PL-12", + description="Region code for Małopolskie.")) + setattr(cls, "PL-14", + PermissibleValue( + text="PL-14", + description="Region code for Mazowieckie.")) + setattr(cls, "PL-16", + PermissibleValue( + text="PL-16", + description="Region code for Opolskie.")) + setattr(cls, "PL-18", + PermissibleValue( + text="PL-18", + description="Region code for Podkarpackie.")) + setattr(cls, "PL-20", + PermissibleValue( + text="PL-20", + description="Region code for Podlaskie.")) + setattr(cls, "PL-22", + PermissibleValue( + text="PL-22", + description="Region code for Pomorskie.")) + setattr(cls, "PL-24", + PermissibleValue( + text="PL-24", + description="Region code for Śląskie.")) + setattr(cls, "PL-26", + PermissibleValue( + text="PL-26", + description="Region code for Świętokrzyskie.")) + setattr(cls, "PL-28", + PermissibleValue( + text="PL-28", + description="Region code for Warmińsko-Mazurskie.")) + setattr(cls, "PL-30", + PermissibleValue( + text="PL-30", + description="Region code for Wielkopolskie.")) + setattr(cls, "PL-32", + PermissibleValue( + text="PL-32", + description="Region code for Zachodniopomorskie.")) + setattr(cls, "PS-BTH", + PermissibleValue( + text="PS-BTH", + description="Region code for Bayt Laḩm.")) + setattr(cls, "PS-DEB", + PermissibleValue( + text="PS-DEB", + description="Region code for Dayr al Balaḩ.")) + setattr(cls, "PS-GZA", + PermissibleValue( + text="PS-GZA", + description="Region code for Ghazzah.")) + setattr(cls, "PS-HBN", + PermissibleValue( + text="PS-HBN", + description="Region code for Al Khalīl.")) + setattr(cls, "PS-JEM", + PermissibleValue( + text="PS-JEM", + description="Region code for Al Quds.")) + setattr(cls, "PS-JEN", + PermissibleValue( + text="PS-JEN", + description="Region code for Janīn.")) + setattr(cls, "PS-JRH", + PermissibleValue( + text="PS-JRH", + description="Region code for Arīḩā wal Aghwār.")) + setattr(cls, "PS-KYS", + PermissibleValue( + text="PS-KYS", + description="Region code for Khān Yūnis.")) + setattr(cls, "PS-NBS", + PermissibleValue( + text="PS-NBS", + description="Region code for Nāblus.")) + setattr(cls, "PS-NGZ", + PermissibleValue( + text="PS-NGZ", + description="Region code for Shamāl Ghazzah.")) + setattr(cls, "PS-QQA", + PermissibleValue( + text="PS-QQA", + description="Region code for Qalqīlyah.")) + setattr(cls, "PS-RBH", + PermissibleValue( + text="PS-RBH", + description="Region code for Rām Allāh wal Bīrah.")) + setattr(cls, "PS-RFH", + PermissibleValue( + text="PS-RFH", + description="Region code for Rafaḩ.")) + setattr(cls, "PS-SLT", + PermissibleValue( + text="PS-SLT", + description="Region code for Salfīt.")) + setattr(cls, "PS-TBS", + PermissibleValue( + text="PS-TBS", + description="Region code for Ţūbās.")) + setattr(cls, "PS-TKM", + PermissibleValue( + text="PS-TKM", + description="Region code for Ţūlkarm.")) + setattr(cls, "PT-01", + PermissibleValue( + text="PT-01", + description="Region code for Aveiro.")) + setattr(cls, "PT-02", + PermissibleValue( + text="PT-02", + description="Region code for Beja.")) + setattr(cls, "PT-03", + PermissibleValue( + text="PT-03", + description="Region code for Braga.")) + setattr(cls, "PT-04", + PermissibleValue( + text="PT-04", + description="Region code for Bragança.")) + setattr(cls, "PT-05", + PermissibleValue( + text="PT-05", + description="Region code for Castelo Branco.")) + setattr(cls, "PT-06", + PermissibleValue( + text="PT-06", + description="Region code for Coimbra.")) + setattr(cls, "PT-07", + PermissibleValue( + text="PT-07", + description="Region code for Évora.")) + setattr(cls, "PT-08", + PermissibleValue( + text="PT-08", + description="Region code for Faro.")) + setattr(cls, "PT-09", + PermissibleValue( + text="PT-09", + description="Region code for Guarda.")) + setattr(cls, "PT-10", + PermissibleValue( + text="PT-10", + description="Region code for Leiria.")) + setattr(cls, "PT-11", + PermissibleValue( + text="PT-11", + description="Region code for Lisboa.")) + setattr(cls, "PT-12", + PermissibleValue( + text="PT-12", + description="Region code for Portalegre.")) + setattr(cls, "PT-13", + PermissibleValue( + text="PT-13", + description="Region code for Porto.")) + setattr(cls, "PT-14", + PermissibleValue( + text="PT-14", + description="Region code for Santarém.")) + setattr(cls, "PT-15", + PermissibleValue( + text="PT-15", + description="Region code for Setúbal.")) + setattr(cls, "PT-16", + PermissibleValue( + text="PT-16", + description="Region code for Viana do Castelo.")) + setattr(cls, "PT-17", + PermissibleValue( + text="PT-17", + description="Region code for Vila Real.")) + setattr(cls, "PT-18", + PermissibleValue( + text="PT-18", + description="Region code for Viseu.")) + setattr(cls, "PT-20", + PermissibleValue( + text="PT-20", + description="Region code for Região Autónoma dos Açores.")) + setattr(cls, "PT-30", + PermissibleValue( + text="PT-30", + description="Region code for Região Autónoma da Madeira.")) + setattr(cls, "PW-002", + PermissibleValue( + text="PW-002", + description="Region code for Aimeliik.")) + setattr(cls, "PW-004", + PermissibleValue( + text="PW-004", + description="Region code for Airai.")) + setattr(cls, "PW-010", + PermissibleValue( + text="PW-010", + description="Region code for Angaur.")) + setattr(cls, "PW-050", + PermissibleValue( + text="PW-050", + description="Region code for Hatohobei.")) + setattr(cls, "PW-100", + PermissibleValue( + text="PW-100", + description="Region code for Kayangel.")) + setattr(cls, "PW-150", + PermissibleValue( + text="PW-150", + description="Region code for Koror.")) + setattr(cls, "PW-212", + PermissibleValue( + text="PW-212", + description="Region code for Melekeok.")) + setattr(cls, "PW-214", + PermissibleValue( + text="PW-214", + description="Region code for Ngaraard.")) + setattr(cls, "PW-218", + PermissibleValue( + text="PW-218", + description="Region code for Ngarchelong.")) + setattr(cls, "PW-222", + PermissibleValue( + text="PW-222", + description="Region code for Ngardmau.")) + setattr(cls, "PW-224", + PermissibleValue( + text="PW-224", + description="Region code for Ngatpang.")) + setattr(cls, "PW-226", + PermissibleValue( + text="PW-226", + description="Region code for Ngchesar.")) + setattr(cls, "PW-227", + PermissibleValue( + text="PW-227", + description="Region code for Ngeremlengui.")) + setattr(cls, "PW-228", + PermissibleValue( + text="PW-228", + description="Region code for Ngiwal.")) + setattr(cls, "PW-350", + PermissibleValue( + text="PW-350", + description="Region code for Peleliu.")) + setattr(cls, "PW-370", + PermissibleValue( + text="PW-370", + description="Region code for Sonsorol.")) + setattr(cls, "PY-1", + PermissibleValue( + text="PY-1", + description="Region code for Concepción.")) + setattr(cls, "PY-10", + PermissibleValue( + text="PY-10", + description="Region code for Alto Paraná.")) + setattr(cls, "PY-11", + PermissibleValue( + text="PY-11", + description="Region code for Central.")) + setattr(cls, "PY-12", + PermissibleValue( + text="PY-12", + description="Region code for Ñeembucú.")) + setattr(cls, "PY-13", + PermissibleValue( + text="PY-13", + description="Region code for Amambay.")) + setattr(cls, "PY-14", + PermissibleValue( + text="PY-14", + description="Region code for Canindeyú.")) + setattr(cls, "PY-15", + PermissibleValue( + text="PY-15", + description="Region code for Presidente Hayes.")) + setattr(cls, "PY-16", + PermissibleValue( + text="PY-16", + description="Region code for Alto Paraguay.")) + setattr(cls, "PY-19", + PermissibleValue( + text="PY-19", + description="Region code for Boquerón.")) + setattr(cls, "PY-2", + PermissibleValue( + text="PY-2", + description="Region code for San Pedro.")) + setattr(cls, "PY-3", + PermissibleValue( + text="PY-3", + description="Region code for Cordillera.")) + setattr(cls, "PY-4", + PermissibleValue( + text="PY-4", + description="Region code for Guairá.")) + setattr(cls, "PY-5", + PermissibleValue( + text="PY-5", + description="Region code for Caaguazú.")) + setattr(cls, "PY-6", + PermissibleValue( + text="PY-6", + description="Region code for Caazapá.")) + setattr(cls, "PY-7", + PermissibleValue( + text="PY-7", + description="Region code for Itapúa.")) + setattr(cls, "PY-8", + PermissibleValue( + text="PY-8", + description="Region code for Misiones.")) + setattr(cls, "PY-9", + PermissibleValue( + text="PY-9", + description="Region code for Paraguarí.")) + setattr(cls, "PY-ASU", + PermissibleValue( + text="PY-ASU", + description="Region code for Asunción.")) + setattr(cls, "QA-DA", + PermissibleValue( + text="QA-DA", + description="Region code for Ad Dawḩah.")) + setattr(cls, "QA-KH", + PermissibleValue( + text="QA-KH", + description="Region code for Al Khawr wa adh Dhakhīrah.")) + setattr(cls, "QA-MS", + PermissibleValue( + text="QA-MS", + description="Region code for Ash Shamāl.")) + setattr(cls, "QA-RA", + PermissibleValue( + text="QA-RA", + description="Region code for Ar Rayyān.")) + setattr(cls, "QA-SH", + PermissibleValue( + text="QA-SH", + description="Region code for Ash Shīḩānīyah.")) + setattr(cls, "QA-US", + PermissibleValue( + text="QA-US", + description="Region code for Umm Şalāl.")) + setattr(cls, "QA-WA", + PermissibleValue( + text="QA-WA", + description="Region code for Al Wakrah.")) + setattr(cls, "QA-ZA", + PermissibleValue( + text="QA-ZA", + description="Region code for Az̧ Z̧a‘āyin.")) + setattr(cls, "RO-AB", + PermissibleValue( + text="RO-AB", + description="Region code for Alba.")) + setattr(cls, "RO-AG", + PermissibleValue( + text="RO-AG", + description="Region code for Argeș.")) + setattr(cls, "RO-AR", + PermissibleValue( + text="RO-AR", + description="Region code for Arad.")) + setattr(cls, "RO-B", + PermissibleValue( + text="RO-B", + description="Region code for București.")) + setattr(cls, "RO-BC", + PermissibleValue( + text="RO-BC", + description="Region code for Bacău.")) + setattr(cls, "RO-BH", + PermissibleValue( + text="RO-BH", + description="Region code for Bihor.")) + setattr(cls, "RO-BN", + PermissibleValue( + text="RO-BN", + description="Region code for Bistrița-Năsăud.")) + setattr(cls, "RO-BR", + PermissibleValue( + text="RO-BR", + description="Region code for Brăila.")) + setattr(cls, "RO-BT", + PermissibleValue( + text="RO-BT", + description="Region code for Botoșani.")) + setattr(cls, "RO-BV", + PermissibleValue( + text="RO-BV", + description="Region code for Brașov.")) + setattr(cls, "RO-BZ", + PermissibleValue( + text="RO-BZ", + description="Region code for Buzău.")) + setattr(cls, "RO-CJ", + PermissibleValue( + text="RO-CJ", + description="Region code for Cluj.")) + setattr(cls, "RO-CL", + PermissibleValue( + text="RO-CL", + description="Region code for Călărași.")) + setattr(cls, "RO-CS", + PermissibleValue( + text="RO-CS", + description="Region code for Caraș-Severin.")) + setattr(cls, "RO-CT", + PermissibleValue( + text="RO-CT", + description="Region code for Constanța.")) + setattr(cls, "RO-CV", + PermissibleValue( + text="RO-CV", + description="Region code for Covasna.")) + setattr(cls, "RO-DB", + PermissibleValue( + text="RO-DB", + description="Region code for Dâmbovița.")) + setattr(cls, "RO-DJ", + PermissibleValue( + text="RO-DJ", + description="Region code for Dolj.")) + setattr(cls, "RO-GJ", + PermissibleValue( + text="RO-GJ", + description="Region code for Gorj.")) + setattr(cls, "RO-GL", + PermissibleValue( + text="RO-GL", + description="Region code for Galați.")) + setattr(cls, "RO-GR", + PermissibleValue( + text="RO-GR", + description="Region code for Giurgiu.")) + setattr(cls, "RO-HD", + PermissibleValue( + text="RO-HD", + description="Region code for Hunedoara.")) + setattr(cls, "RO-HR", + PermissibleValue( + text="RO-HR", + description="Region code for Harghita.")) + setattr(cls, "RO-IF", + PermissibleValue( + text="RO-IF", + description="Region code for Ilfov.")) + setattr(cls, "RO-IL", + PermissibleValue( + text="RO-IL", + description="Region code for Ialomița.")) + setattr(cls, "RO-IS", + PermissibleValue( + text="RO-IS", + description="Region code for Iași.")) + setattr(cls, "RO-MH", + PermissibleValue( + text="RO-MH", + description="Region code for Mehedinți.")) + setattr(cls, "RO-MM", + PermissibleValue( + text="RO-MM", + description="Region code for Maramureș.")) + setattr(cls, "RO-MS", + PermissibleValue( + text="RO-MS", + description="Region code for Mureș.")) + setattr(cls, "RO-NT", + PermissibleValue( + text="RO-NT", + description="Region code for Neamț.")) + setattr(cls, "RO-OT", + PermissibleValue( + text="RO-OT", + description="Region code for Olt.")) + setattr(cls, "RO-PH", + PermissibleValue( + text="RO-PH", + description="Region code for Prahova.")) + setattr(cls, "RO-SB", + PermissibleValue( + text="RO-SB", + description="Region code for Sibiu.")) + setattr(cls, "RO-SJ", + PermissibleValue( + text="RO-SJ", + description="Region code for Sălaj.")) + setattr(cls, "RO-SM", + PermissibleValue( + text="RO-SM", + description="Region code for Satu Mare.")) + setattr(cls, "RO-SV", + PermissibleValue( + text="RO-SV", + description="Region code for Suceava.")) + setattr(cls, "RO-TL", + PermissibleValue( + text="RO-TL", + description="Region code for Tulcea.")) + setattr(cls, "RO-TM", + PermissibleValue( + text="RO-TM", + description="Region code for Timiș.")) + setattr(cls, "RO-TR", + PermissibleValue( + text="RO-TR", + description="Region code for Teleorman.")) + setattr(cls, "RO-VL", + PermissibleValue( + text="RO-VL", + description="Region code for Vâlcea.")) + setattr(cls, "RO-VN", + PermissibleValue( + text="RO-VN", + description="Region code for Vrancea.")) + setattr(cls, "RO-VS", + PermissibleValue( + text="RO-VS", + description="Region code for Vaslui.")) + setattr(cls, "RS-00", + PermissibleValue( + text="RS-00", + description="Region code for Beograd.")) + setattr(cls, "RS-01", + PermissibleValue( + text="RS-01", + description="Region code for Severnobački okrug.")) + setattr(cls, "RS-02", + PermissibleValue( + text="RS-02", + description="Region code for Srednjebanatski okrug.")) + setattr(cls, "RS-03", + PermissibleValue( + text="RS-03", + description="Region code for Severnobanatski okrug.")) + setattr(cls, "RS-04", + PermissibleValue( + text="RS-04", + description="Region code for Južnobanatski okrug.")) + setattr(cls, "RS-05", + PermissibleValue( + text="RS-05", + description="Region code for Zapadnobački okrug.")) + setattr(cls, "RS-06", + PermissibleValue( + text="RS-06", + description="Region code for Južnobački okrug.")) + setattr(cls, "RS-07", + PermissibleValue( + text="RS-07", + description="Region code for Sremski okrug.")) + setattr(cls, "RS-08", + PermissibleValue( + text="RS-08", + description="Region code for Mačvanski okrug.")) + setattr(cls, "RS-09", + PermissibleValue( + text="RS-09", + description="Region code for Kolubarski okrug.")) + setattr(cls, "RS-10", + PermissibleValue( + text="RS-10", + description="Region code for Podunavski okrug.")) + setattr(cls, "RS-11", + PermissibleValue( + text="RS-11", + description="Region code for Braničevski okrug.")) + setattr(cls, "RS-12", + PermissibleValue( + text="RS-12", + description="Region code for Šumadijski okrug.")) + setattr(cls, "RS-13", + PermissibleValue( + text="RS-13", + description="Region code for Pomoravski okrug.")) + setattr(cls, "RS-14", + PermissibleValue( + text="RS-14", + description="Region code for Borski okrug.")) + setattr(cls, "RS-15", + PermissibleValue( + text="RS-15", + description="Region code for Zaječarski okrug.")) + setattr(cls, "RS-16", + PermissibleValue( + text="RS-16", + description="Region code for Zlatiborski okrug.")) + setattr(cls, "RS-17", + PermissibleValue( + text="RS-17", + description="Region code for Moravički okrug.")) + setattr(cls, "RS-18", + PermissibleValue( + text="RS-18", + description="Region code for Raški okrug.")) + setattr(cls, "RS-19", + PermissibleValue( + text="RS-19", + description="Region code for Rasinski okrug.")) + setattr(cls, "RS-20", + PermissibleValue( + text="RS-20", + description="Region code for Nišavski okrug.")) + setattr(cls, "RS-21", + PermissibleValue( + text="RS-21", + description="Region code for Toplički okrug.")) + setattr(cls, "RS-22", + PermissibleValue( + text="RS-22", + description="Region code for Pirotski okrug.")) + setattr(cls, "RS-23", + PermissibleValue( + text="RS-23", + description="Region code for Jablanički okrug.")) + setattr(cls, "RS-24", + PermissibleValue( + text="RS-24", + description="Region code for Pčinjski okrug.")) + setattr(cls, "RS-25", + PermissibleValue( + text="RS-25", + description="Region code for Kosovski okrug.")) + setattr(cls, "RS-26", + PermissibleValue( + text="RS-26", + description="Region code for Pećki okrug.")) + setattr(cls, "RS-27", + PermissibleValue( + text="RS-27", + description="Region code for Prizrenski okrug.")) + setattr(cls, "RS-28", + PermissibleValue( + text="RS-28", + description="Region code for Kosovsko-Mitrovački okrug.")) + setattr(cls, "RS-29", + PermissibleValue( + text="RS-29", + description="Region code for Kosovsko-Pomoravski okrug.")) + setattr(cls, "RS-KM", + PermissibleValue( + text="RS-KM", + description="Region code for Kosovo-Metohija.")) + setattr(cls, "RS-VO", + PermissibleValue( + text="RS-VO", + description="Region code for Vojvodina.")) + setattr(cls, "RU-AD", + PermissibleValue( + text="RU-AD", + description="Region code for Adygeya, Respublika.")) + setattr(cls, "RU-AL", + PermissibleValue( + text="RU-AL", + description="Region code for Altaj, Respublika.")) + setattr(cls, "RU-ALT", + PermissibleValue( + text="RU-ALT", + description="Region code for Altajskij kraj.")) + setattr(cls, "RU-AMU", + PermissibleValue( + text="RU-AMU", + description="Region code for Amurskaya oblast'.")) + setattr(cls, "RU-ARK", + PermissibleValue( + text="RU-ARK", + description="Region code for Arkhangel'skaya oblast'.")) + setattr(cls, "RU-AST", + PermissibleValue( + text="RU-AST", + description="Region code for Astrakhanskaya oblast'.")) + setattr(cls, "RU-BA", + PermissibleValue( + text="RU-BA", + description="Region code for Baškortostan, Respublika.")) + setattr(cls, "RU-BEL", + PermissibleValue( + text="RU-BEL", + description="Region code for Belgorodskaya oblast'.")) + setattr(cls, "RU-BRY", + PermissibleValue( + text="RU-BRY", + description="Region code for Bryanskaya oblast'.")) + setattr(cls, "RU-BU", + PermissibleValue( + text="RU-BU", + description="Region code for Buryatiya, Respublika.")) + setattr(cls, "RU-CE", + PermissibleValue( + text="RU-CE", + description="Region code for Čečenskaja Respublika.")) + setattr(cls, "RU-CHE", + PermissibleValue( + text="RU-CHE", + description="Region code for Čeljabinskaja oblast'.")) + setattr(cls, "RU-CHU", + PermissibleValue( + text="RU-CHU", + description="Region code for Chukotskiy avtonomnyy okrug.")) + setattr(cls, "RU-CU", + PermissibleValue( + text="RU-CU", + description="Region code for Čuvašskaja Respublika.")) + setattr(cls, "RU-DA", + PermissibleValue( + text="RU-DA", + description="Region code for Dagestan, Respublika.")) + setattr(cls, "RU-IN", + PermissibleValue( + text="RU-IN", + description="Region code for Ingušetija, Respublika.")) + setattr(cls, "RU-IRK", + PermissibleValue( + text="RU-IRK", + description="Region code for Irkutskaya oblast'.")) + setattr(cls, "RU-IVA", + PermissibleValue( + text="RU-IVA", + description="Region code for Ivanovskaya oblast'.")) + setattr(cls, "RU-KAM", + PermissibleValue( + text="RU-KAM", + description="Region code for Kamchatskiy kray.")) + setattr(cls, "RU-KB", + PermissibleValue( + text="RU-KB", + description="Region code for Kabardino-Balkarskaya Respublika.")) + setattr(cls, "RU-KC", + PermissibleValue( + text="RU-KC", + description="Region code for Karachayevo-Cherkesskaya Respublika.")) + setattr(cls, "RU-KDA", + PermissibleValue( + text="RU-KDA", + description="Region code for Krasnodarskiy kray.")) + setattr(cls, "RU-KEM", + PermissibleValue( + text="RU-KEM", + description="Region code for Kemerovskaya oblast'.")) + setattr(cls, "RU-KGD", + PermissibleValue( + text="RU-KGD", + description="Region code for Kaliningradskaya oblast'.")) + setattr(cls, "RU-KGN", + PermissibleValue( + text="RU-KGN", + description="Region code for Kurganskaja oblast'.")) + setattr(cls, "RU-KHA", + PermissibleValue( + text="RU-KHA", + description="Region code for Khabarovskiy kray.")) + setattr(cls, "RU-KHM", + PermissibleValue( + text="RU-KHM", + description="Region code for Khanty-Mansiyskiy avtonomnyy okrug.")) + setattr(cls, "RU-KIR", + PermissibleValue( + text="RU-KIR", + description="Region code for Kirovskaja oblast'.")) + setattr(cls, "RU-KK", + PermissibleValue( + text="RU-KK", + description="Region code for Hakasija, Respublika.")) + setattr(cls, "RU-KL", + PermissibleValue( + text="RU-KL", + description="Region code for Kalmykija, Respublika.")) + setattr(cls, "RU-KLU", + PermissibleValue( + text="RU-KLU", + description="Region code for Kalužskaja oblast'.")) + setattr(cls, "RU-KO", + PermissibleValue( + text="RU-KO", + description="Region code for Komi, Respublika.")) + setattr(cls, "RU-KOS", + PermissibleValue( + text="RU-KOS", + description="Region code for Kostromskaya oblast'.")) + setattr(cls, "RU-KR", + PermissibleValue( + text="RU-KR", + description="Region code for Kareliya, Respublika.")) + setattr(cls, "RU-KRS", + PermissibleValue( + text="RU-KRS", + description="Region code for Kurskaja oblast'.")) + setattr(cls, "RU-KYA", + PermissibleValue( + text="RU-KYA", + description="Region code for Krasnojarskij kraj.")) + setattr(cls, "RU-LEN", + PermissibleValue( + text="RU-LEN", + description="Region code for Leningradskaja oblast'.")) + setattr(cls, "RU-LIP", + PermissibleValue( + text="RU-LIP", + description="Region code for Lipeckaja oblast'.")) + setattr(cls, "RU-MAG", + PermissibleValue( + text="RU-MAG", + description="Region code for Magadanskaya oblast'.")) + setattr(cls, "RU-ME", + PermissibleValue( + text="RU-ME", + description="Region code for Mariy El, Respublika.")) + setattr(cls, "RU-MO", + PermissibleValue( + text="RU-MO", + description="Region code for Mordoviya, Respublika.")) + setattr(cls, "RU-MOS", + PermissibleValue( + text="RU-MOS", + description="Region code for Moskovskaya oblast'.")) + setattr(cls, "RU-MOW", + PermissibleValue( + text="RU-MOW", + description="Region code for Moskva.")) + setattr(cls, "RU-MUR", + PermissibleValue( + text="RU-MUR", + description="Region code for Murmanskaya oblast'.")) + setattr(cls, "RU-NEN", + PermissibleValue( + text="RU-NEN", + description="Region code for Nenetskiy avtonomnyy okrug.")) + setattr(cls, "RU-NGR", + PermissibleValue( + text="RU-NGR", + description="Region code for Novgorodskaja oblast'.")) + setattr(cls, "RU-NIZ", + PermissibleValue( + text="RU-NIZ", + description="Region code for Nižegorodskaja oblast'.")) + setattr(cls, "RU-NVS", + PermissibleValue( + text="RU-NVS", + description="Region code for Novosibirskaya oblast'.")) + setattr(cls, "RU-OMS", + PermissibleValue( + text="RU-OMS", + description="Region code for Omskaya oblast'.")) + setattr(cls, "RU-ORE", + PermissibleValue( + text="RU-ORE", + description="Region code for Orenburgskaja oblast'.")) + setattr(cls, "RU-ORL", + PermissibleValue( + text="RU-ORL", + description="Region code for Orlovskaja oblast'.")) + setattr(cls, "RU-PER", + PermissibleValue( + text="RU-PER", + description="Region code for Permskiy kray.")) + setattr(cls, "RU-PNZ", + PermissibleValue( + text="RU-PNZ", + description="Region code for Penzenskaya oblast'.")) + setattr(cls, "RU-PRI", + PermissibleValue( + text="RU-PRI", + description="Region code for Primorskij kraj.")) + setattr(cls, "RU-PSK", + PermissibleValue( + text="RU-PSK", + description="Region code for Pskovskaja oblast'.")) + setattr(cls, "RU-ROS", + PermissibleValue( + text="RU-ROS", + description="Region code for Rostovskaja oblast'.")) + setattr(cls, "RU-RYA", + PermissibleValue( + text="RU-RYA", + description="Region code for Rjazanskaja oblast'.")) + setattr(cls, "RU-SA", + PermissibleValue( + text="RU-SA", + description="Region code for Saha, Respublika.")) + setattr(cls, "RU-SAK", + PermissibleValue( + text="RU-SAK", + description="Region code for Sahalinskaja oblast'.")) + setattr(cls, "RU-SAM", + PermissibleValue( + text="RU-SAM", + description="Region code for Samarskaya oblast'.")) + setattr(cls, "RU-SAR", + PermissibleValue( + text="RU-SAR", + description="Region code for Saratovskaya oblast'.")) + setattr(cls, "RU-SE", + PermissibleValue( + text="RU-SE", + description="Region code for Severnaya Osetiya, Respublika.")) + setattr(cls, "RU-SMO", + PermissibleValue( + text="RU-SMO", + description="Region code for Smolenskaja oblast'.")) + setattr(cls, "RU-SPE", + PermissibleValue( + text="RU-SPE", + description="Region code for Sankt-Peterburg.")) + setattr(cls, "RU-STA", + PermissibleValue( + text="RU-STA", + description="Region code for Stavropol'skiy kray.")) + setattr(cls, "RU-SVE", + PermissibleValue( + text="RU-SVE", + description="Region code for Sverdlovskaya oblast'.")) + setattr(cls, "RU-TA", + PermissibleValue( + text="RU-TA", + description="Region code for Tatarstan, Respublika.")) + setattr(cls, "RU-TAM", + PermissibleValue( + text="RU-TAM", + description="Region code for Tambovskaya oblast'.")) + setattr(cls, "RU-TOM", + PermissibleValue( + text="RU-TOM", + description="Region code for Tomskaya oblast'.")) + setattr(cls, "RU-TUL", + PermissibleValue( + text="RU-TUL", + description="Region code for Tul'skaja oblast'.")) + setattr(cls, "RU-TVE", + PermissibleValue( + text="RU-TVE", + description="Region code for Tverskaja oblast'.")) + setattr(cls, "RU-TY", + PermissibleValue( + text="RU-TY", + description="Region code for Tyva, Respublika.")) + setattr(cls, "RU-TYU", + PermissibleValue( + text="RU-TYU", + description="Region code for Tyumenskaya oblast'.")) + setattr(cls, "RU-UD", + PermissibleValue( + text="RU-UD", + description="Region code for Udmurtskaya Respublika.")) + setattr(cls, "RU-ULY", + PermissibleValue( + text="RU-ULY", + description="Region code for Ul'janovskaja oblast'.")) + setattr(cls, "RU-VGG", + PermissibleValue( + text="RU-VGG", + description="Region code for Volgogradskaja oblast'.")) + setattr(cls, "RU-VLA", + PermissibleValue( + text="RU-VLA", + description="Region code for Vladimirskaya oblast'.")) + setattr(cls, "RU-VLG", + PermissibleValue( + text="RU-VLG", + description="Region code for Vologodskaya oblast'.")) + setattr(cls, "RU-VOR", + PermissibleValue( + text="RU-VOR", + description="Region code for Voronežskaja oblast'.")) + setattr(cls, "RU-YAN", + PermissibleValue( + text="RU-YAN", + description="Region code for Jamalo-Neneckij avtonomnyj okrug.")) + setattr(cls, "RU-YAR", + PermissibleValue( + text="RU-YAR", + description="Region code for Jaroslavskaja oblast'.")) + setattr(cls, "RU-YEV", + PermissibleValue( + text="RU-YEV", + description="Region code for Yevreyskaya avtonomnaya oblast'.")) + setattr(cls, "RU-ZAB", + PermissibleValue( + text="RU-ZAB", + description="Region code for Zabaykal'skiy kray.")) + setattr(cls, "RW-01", + PermissibleValue( + text="RW-01", + description="Region code for City of Kigali.")) + setattr(cls, "RW-02", + PermissibleValue( + text="RW-02", + description="Region code for Eastern.")) + setattr(cls, "RW-03", + PermissibleValue( + text="RW-03", + description="Region code for Northern.")) + setattr(cls, "RW-04", + PermissibleValue( + text="RW-04", + description="Region code for Western.")) + setattr(cls, "RW-05", + PermissibleValue( + text="RW-05", + description="Region code for Southern.")) + setattr(cls, "SA-01", + PermissibleValue( + text="SA-01", + description="Region code for Ar Riyāḑ.")) + setattr(cls, "SA-02", + PermissibleValue( + text="SA-02", + description="Region code for Makkah al Mukarramah.")) + setattr(cls, "SA-03", + PermissibleValue( + text="SA-03", + description="Region code for Al Madīnah al Munawwarah.")) + setattr(cls, "SA-04", + PermissibleValue( + text="SA-04", + description="Region code for Ash Sharqīyah.")) + setattr(cls, "SA-05", + PermissibleValue( + text="SA-05", + description="Region code for Al Qaşīm.")) + setattr(cls, "SA-06", + PermissibleValue( + text="SA-06", + description="Region code for Ḩā'il.")) + setattr(cls, "SA-07", + PermissibleValue( + text="SA-07", + description="Region code for Tabūk.")) + setattr(cls, "SA-08", + PermissibleValue( + text="SA-08", + description="Region code for Al Ḩudūd ash Shamālīyah.")) + setattr(cls, "SA-09", + PermissibleValue( + text="SA-09", + description="Region code for Jāzān.")) + setattr(cls, "SA-10", + PermissibleValue( + text="SA-10", + description="Region code for Najrān.")) + setattr(cls, "SA-11", + PermissibleValue( + text="SA-11", + description="Region code for Al Bāḩah.")) + setattr(cls, "SA-12", + PermissibleValue( + text="SA-12", + description="Region code for Al Jawf.")) + setattr(cls, "SA-14", + PermissibleValue( + text="SA-14", + description="Region code for 'Asīr.")) + setattr(cls, "SB-CE", + PermissibleValue( + text="SB-CE", + description="Region code for Central.")) + setattr(cls, "SB-CH", + PermissibleValue( + text="SB-CH", + description="Region code for Choiseul.")) + setattr(cls, "SB-CT", + PermissibleValue( + text="SB-CT", + description="Region code for Capital Territory (Honiara).")) + setattr(cls, "SB-GU", + PermissibleValue( + text="SB-GU", + description="Region code for Guadalcanal.")) + setattr(cls, "SB-IS", + PermissibleValue( + text="SB-IS", + description="Region code for Isabel.")) + setattr(cls, "SB-MK", + PermissibleValue( + text="SB-MK", + description="Region code for Makira-Ulawa.")) + setattr(cls, "SB-ML", + PermissibleValue( + text="SB-ML", + description="Region code for Malaita.")) + setattr(cls, "SB-RB", + PermissibleValue( + text="SB-RB", + description="Region code for Rennell and Bellona.")) + setattr(cls, "SB-TE", + PermissibleValue( + text="SB-TE", + description="Region code for Temotu.")) + setattr(cls, "SB-WE", + PermissibleValue( + text="SB-WE", + description="Region code for Western.")) + setattr(cls, "SC-01", + PermissibleValue( + text="SC-01", + description="Region code for Ans o Pen.")) + setattr(cls, "SC-02", + PermissibleValue( + text="SC-02", + description="Region code for Ans Bwalo.")) + setattr(cls, "SC-03", + PermissibleValue( + text="SC-03", + description="Region code for Ans Etwal.")) + setattr(cls, "SC-04", + PermissibleValue( + text="SC-04", + description="Region code for O Kap.")) + setattr(cls, "SC-05", + PermissibleValue( + text="SC-05", + description="Region code for Ans Royal.")) + setattr(cls, "SC-06", + PermissibleValue( + text="SC-06", + description="Region code for Be Lazar.")) + setattr(cls, "SC-07", + PermissibleValue( + text="SC-07", + description="Region code for Be Sent Ann.")) + setattr(cls, "SC-08", + PermissibleValue( + text="SC-08", + description="Region code for Bovalon.")) + setattr(cls, "SC-09", + PermissibleValue( + text="SC-09", + description="Region code for Beler.")) + setattr(cls, "SC-10", + PermissibleValue( + text="SC-10", + description="Region code for Belonm.")) + setattr(cls, "SC-11", + PermissibleValue( + text="SC-11", + description="Region code for Kaskad.")) + setattr(cls, "SC-12", + PermissibleValue( + text="SC-12", + description="Region code for Glasi.")) + setattr(cls, "SC-13", + PermissibleValue( + text="SC-13", + description="Region code for Grand Ans Mae.")) + setattr(cls, "SC-14", + PermissibleValue( + text="SC-14", + description="Region code for Grand Ans Pralen.")) + setattr(cls, "SC-15", + PermissibleValue( + text="SC-15", + description="Region code for Ladig.")) + setattr(cls, "SC-16", + PermissibleValue( + text="SC-16", + description="Region code for Larivyer Anglez.")) + setattr(cls, "SC-17", + PermissibleValue( + text="SC-17", + description="Region code for Mon Bikston.")) + setattr(cls, "SC-18", + PermissibleValue( + text="SC-18", + description="Region code for Mon Fleri.")) + setattr(cls, "SC-19", + PermissibleValue( + text="SC-19", + description="Region code for Plezans.")) + setattr(cls, "SC-20", + PermissibleValue( + text="SC-20", + description="Region code for Pwent Lari.")) + setattr(cls, "SC-21", + PermissibleValue( + text="SC-21", + description="Region code for Porglo.")) + setattr(cls, "SC-22", + PermissibleValue( + text="SC-22", + description="Region code for Sen Lwi.")) + setattr(cls, "SC-23", + PermissibleValue( + text="SC-23", + description="Region code for Takamaka.")) + setattr(cls, "SC-24", + PermissibleValue( + text="SC-24", + description="Region code for Lemamel.")) + setattr(cls, "SC-25", + PermissibleValue( + text="SC-25", + description="Region code for Ros Kaiman.")) + setattr(cls, "SC-26", + PermissibleValue( + text="SC-26", + description="Region code for Ile Perseverance I.")) + setattr(cls, "SC-27", + PermissibleValue( + text="SC-27", + description="Region code for Ile Perseverance II.")) + setattr(cls, "SD-DC", + PermissibleValue( + text="SD-DC", + description="Region code for Wasaţ Dārfūr.")) + setattr(cls, "SD-DE", + PermissibleValue( + text="SD-DE", + description="Region code for Sharq Dārfūr.")) + setattr(cls, "SD-DN", + PermissibleValue( + text="SD-DN", + description="Region code for Shamāl Dārfūr.")) + setattr(cls, "SD-DS", + PermissibleValue( + text="SD-DS", + description="Region code for Janūb Dārfūr.")) + setattr(cls, "SD-DW", + PermissibleValue( + text="SD-DW", + description="Region code for Gharb Dārfūr.")) + setattr(cls, "SD-GD", + PermissibleValue( + text="SD-GD", + description="Region code for Al Qaḑārif.")) + setattr(cls, "SD-GK", + PermissibleValue( + text="SD-GK", + description="Region code for Gharb Kurdufān.")) + setattr(cls, "SD-GZ", + PermissibleValue( + text="SD-GZ", + description="Region code for Al Jazīrah.")) + setattr(cls, "SD-KA", + PermissibleValue( + text="SD-KA", + description="Region code for Kassalā.")) + setattr(cls, "SD-KH", + PermissibleValue( + text="SD-KH", + description="Region code for Al Kharţūm.")) + setattr(cls, "SD-KN", + PermissibleValue( + text="SD-KN", + description="Region code for Shamāl Kurdufān.")) + setattr(cls, "SD-KS", + PermissibleValue( + text="SD-KS", + description="Region code for Janūb Kurdufān.")) + setattr(cls, "SD-NB", + PermissibleValue( + text="SD-NB", + description="Region code for An Nīl al Azraq.")) + setattr(cls, "SD-NO", + PermissibleValue( + text="SD-NO", + description="Region code for Ash Shamālīyah.")) + setattr(cls, "SD-NR", + PermissibleValue( + text="SD-NR", + description="Region code for Nahr an Nīl.")) + setattr(cls, "SD-NW", + PermissibleValue( + text="SD-NW", + description="Region code for An Nīl al Abyaḑ.")) + setattr(cls, "SD-RS", + PermissibleValue( + text="SD-RS", + description="Region code for Al Baḩr al Aḩmar.")) + setattr(cls, "SD-SI", + PermissibleValue( + text="SD-SI", + description="Region code for Sinnār.")) + setattr(cls, "SE-AB", + PermissibleValue( + text="SE-AB", + description="Region code for Stockholms län [SE-01].")) + setattr(cls, "SE-AC", + PermissibleValue( + text="SE-AC", + description="Region code for Västerbottens län [SE-24].")) + setattr(cls, "SE-BD", + PermissibleValue( + text="SE-BD", + description="Region code for Norrbottens län [SE-25].")) + setattr(cls, "SE-C", + PermissibleValue( + text="SE-C", + description="Region code for Uppsala län [SE-03].")) + setattr(cls, "SE-D", + PermissibleValue( + text="SE-D", + description="Region code for Södermanlands län [SE-04].")) + setattr(cls, "SE-E", + PermissibleValue( + text="SE-E", + description="Region code for Östergötlands län [SE-05].")) + setattr(cls, "SE-F", + PermissibleValue( + text="SE-F", + description="Region code for Jönköpings län [SE-06].")) + setattr(cls, "SE-G", + PermissibleValue( + text="SE-G", + description="Region code for Kronobergs län [SE-07].")) + setattr(cls, "SE-H", + PermissibleValue( + text="SE-H", + description="Region code for Kalmar län [SE-08].")) + setattr(cls, "SE-I", + PermissibleValue( + text="SE-I", + description="Region code for Gotlands län [SE-09].")) + setattr(cls, "SE-K", + PermissibleValue( + text="SE-K", + description="Region code for Blekinge län [SE-10].")) + setattr(cls, "SE-M", + PermissibleValue( + text="SE-M", + description="Region code for Skåne län [SE-12].")) + setattr(cls, "SE-N", + PermissibleValue( + text="SE-N", + description="Region code for Hallands län [SE-13].")) + setattr(cls, "SE-O", + PermissibleValue( + text="SE-O", + description="Region code for Västra Götalands län [SE-14].")) + setattr(cls, "SE-S", + PermissibleValue( + text="SE-S", + description="Region code for Värmlands län [SE-17].")) + setattr(cls, "SE-T", + PermissibleValue( + text="SE-T", + description="Region code for Örebro län [SE-18].")) + setattr(cls, "SE-U", + PermissibleValue( + text="SE-U", + description="Region code for Västmanlands län [SE-19].")) + setattr(cls, "SE-W", + PermissibleValue( + text="SE-W", + description="Region code for Dalarnas län [SE-20].")) + setattr(cls, "SE-X", + PermissibleValue( + text="SE-X", + description="Region code for Gävleborgs län [SE-21].")) + setattr(cls, "SE-Y", + PermissibleValue( + text="SE-Y", + description="Region code for Västernorrlands län [SE-22].")) + setattr(cls, "SE-Z", + PermissibleValue( + text="SE-Z", + description="Region code for Jämtlands län [SE-23].")) + setattr(cls, "SG-01", + PermissibleValue( + text="SG-01", + description="Region code for Central Singapore.")) + setattr(cls, "SG-02", + PermissibleValue( + text="SG-02", + description="Region code for North East.")) + setattr(cls, "SG-03", + PermissibleValue( + text="SG-03", + description="Region code for North West.")) + setattr(cls, "SG-04", + PermissibleValue( + text="SG-04", + description="Region code for South East.")) + setattr(cls, "SG-05", + PermissibleValue( + text="SG-05", + description="Region code for South West.")) + setattr(cls, "SH-AC", + PermissibleValue( + text="SH-AC", + description="Region code for Ascension.")) + setattr(cls, "SH-HL", + PermissibleValue( + text="SH-HL", + description="Region code for Saint Helena.")) + setattr(cls, "SH-TA", + PermissibleValue( + text="SH-TA", + description="Region code for Tristan da Cunha.")) + setattr(cls, "SI-001", + PermissibleValue( + text="SI-001", + description="Region code for Ajdovščina.")) + setattr(cls, "SI-002", + PermissibleValue( + text="SI-002", + description="Region code for Beltinci.")) + setattr(cls, "SI-003", + PermissibleValue( + text="SI-003", + description="Region code for Bled.")) + setattr(cls, "SI-004", + PermissibleValue( + text="SI-004", + description="Region code for Bohinj.")) + setattr(cls, "SI-005", + PermissibleValue( + text="SI-005", + description="Region code for Borovnica.")) + setattr(cls, "SI-006", + PermissibleValue( + text="SI-006", + description="Region code for Bovec.")) + setattr(cls, "SI-007", + PermissibleValue( + text="SI-007", + description="Region code for Brda.")) + setattr(cls, "SI-008", + PermissibleValue( + text="SI-008", + description="Region code for Brezovica.")) + setattr(cls, "SI-009", + PermissibleValue( + text="SI-009", + description="Region code for Brežice.")) + setattr(cls, "SI-010", + PermissibleValue( + text="SI-010", + description="Region code for Tišina.")) + setattr(cls, "SI-011", + PermissibleValue( + text="SI-011", + description="Region code for Celje.")) + setattr(cls, "SI-012", + PermissibleValue( + text="SI-012", + description="Region code for Cerklje na Gorenjskem.")) + setattr(cls, "SI-013", + PermissibleValue( + text="SI-013", + description="Region code for Cerknica.")) + setattr(cls, "SI-014", + PermissibleValue( + text="SI-014", + description="Region code for Cerkno.")) + setattr(cls, "SI-015", + PermissibleValue( + text="SI-015", + description="Region code for Črenšovci.")) + setattr(cls, "SI-016", + PermissibleValue( + text="SI-016", + description="Region code for Črna na Koroškem.")) + setattr(cls, "SI-017", + PermissibleValue( + text="SI-017", + description="Region code for Črnomelj.")) + setattr(cls, "SI-018", + PermissibleValue( + text="SI-018", + description="Region code for Destrnik.")) + setattr(cls, "SI-019", + PermissibleValue( + text="SI-019", + description="Region code for Divača.")) + setattr(cls, "SI-020", + PermissibleValue( + text="SI-020", + description="Region code for Dobrepolje.")) + setattr(cls, "SI-021", + PermissibleValue( + text="SI-021", + description="Region code for Dobrova-Polhov Gradec.")) + setattr(cls, "SI-022", + PermissibleValue( + text="SI-022", + description="Region code for Dol pri Ljubljani.")) + setattr(cls, "SI-023", + PermissibleValue( + text="SI-023", + description="Region code for Domžale.")) + setattr(cls, "SI-024", + PermissibleValue( + text="SI-024", + description="Region code for Dornava.")) + setattr(cls, "SI-025", + PermissibleValue( + text="SI-025", + description="Region code for Dravograd.")) + setattr(cls, "SI-026", + PermissibleValue( + text="SI-026", + description="Region code for Duplek.")) + setattr(cls, "SI-027", + PermissibleValue( + text="SI-027", + description="Region code for Gorenja vas-Poljane.")) + setattr(cls, "SI-028", + PermissibleValue( + text="SI-028", + description="Region code for Gorišnica.")) + setattr(cls, "SI-029", + PermissibleValue( + text="SI-029", + description="Region code for Gornja Radgona.")) + setattr(cls, "SI-030", + PermissibleValue( + text="SI-030", + description="Region code for Gornji Grad.")) + setattr(cls, "SI-031", + PermissibleValue( + text="SI-031", + description="Region code for Gornji Petrovci.")) + setattr(cls, "SI-032", + PermissibleValue( + text="SI-032", + description="Region code for Grosuplje.")) + setattr(cls, "SI-033", + PermissibleValue( + text="SI-033", + description="Region code for Šalovci.")) + setattr(cls, "SI-034", + PermissibleValue( + text="SI-034", + description="Region code for Hrastnik.")) + setattr(cls, "SI-035", + PermissibleValue( + text="SI-035", + description="Region code for Hrpelje-Kozina.")) + setattr(cls, "SI-036", + PermissibleValue( + text="SI-036", + description="Region code for Idrija.")) + setattr(cls, "SI-037", + PermissibleValue( + text="SI-037", + description="Region code for Ig.")) + setattr(cls, "SI-038", + PermissibleValue( + text="SI-038", + description="Region code for Ilirska Bistrica.")) + setattr(cls, "SI-039", + PermissibleValue( + text="SI-039", + description="Region code for Ivančna Gorica.")) + setattr(cls, "SI-040", + PermissibleValue( + text="SI-040", + description="Region code for Izola.")) + setattr(cls, "SI-041", + PermissibleValue( + text="SI-041", + description="Region code for Jesenice.")) + setattr(cls, "SI-042", + PermissibleValue( + text="SI-042", + description="Region code for Juršinci.")) + setattr(cls, "SI-043", + PermissibleValue( + text="SI-043", + description="Region code for Kamnik.")) + setattr(cls, "SI-044", + PermissibleValue( + text="SI-044", + description="Region code for Kanal ob Soči.")) + setattr(cls, "SI-045", + PermissibleValue( + text="SI-045", + description="Region code for Kidričevo.")) + setattr(cls, "SI-046", + PermissibleValue( + text="SI-046", + description="Region code for Kobarid.")) + setattr(cls, "SI-047", + PermissibleValue( + text="SI-047", + description="Region code for Kobilje.")) + setattr(cls, "SI-048", + PermissibleValue( + text="SI-048", + description="Region code for Kočevje.")) + setattr(cls, "SI-049", + PermissibleValue( + text="SI-049", + description="Region code for Komen.")) + setattr(cls, "SI-050", + PermissibleValue( + text="SI-050", + description="Region code for Koper.")) + setattr(cls, "SI-051", + PermissibleValue( + text="SI-051", + description="Region code for Kozje.")) + setattr(cls, "SI-052", + PermissibleValue( + text="SI-052", + description="Region code for Kranj.")) + setattr(cls, "SI-053", + PermissibleValue( + text="SI-053", + description="Region code for Kranjska Gora.")) + setattr(cls, "SI-054", + PermissibleValue( + text="SI-054", + description="Region code for Krško.")) + setattr(cls, "SI-055", + PermissibleValue( + text="SI-055", + description="Region code for Kungota.")) + setattr(cls, "SI-056", + PermissibleValue( + text="SI-056", + description="Region code for Kuzma.")) + setattr(cls, "SI-057", + PermissibleValue( + text="SI-057", + description="Region code for Laško.")) + setattr(cls, "SI-058", + PermissibleValue( + text="SI-058", + description="Region code for Lenart.")) + setattr(cls, "SI-059", + PermissibleValue( + text="SI-059", + description="Region code for Lendava.")) + setattr(cls, "SI-060", + PermissibleValue( + text="SI-060", + description="Region code for Litija.")) + setattr(cls, "SI-061", + PermissibleValue( + text="SI-061", + description="Region code for Ljubljana.")) + setattr(cls, "SI-062", + PermissibleValue( + text="SI-062", + description="Region code for Ljubno.")) + setattr(cls, "SI-063", + PermissibleValue( + text="SI-063", + description="Region code for Ljutomer.")) + setattr(cls, "SI-064", + PermissibleValue( + text="SI-064", + description="Region code for Logatec.")) + setattr(cls, "SI-065", + PermissibleValue( + text="SI-065", + description="Region code for Loška dolina.")) + setattr(cls, "SI-066", + PermissibleValue( + text="SI-066", + description="Region code for Loški Potok.")) + setattr(cls, "SI-067", + PermissibleValue( + text="SI-067", + description="Region code for Luče.")) + setattr(cls, "SI-068", + PermissibleValue( + text="SI-068", + description="Region code for Lukovica.")) + setattr(cls, "SI-069", + PermissibleValue( + text="SI-069", + description="Region code for Majšperk.")) + setattr(cls, "SI-070", + PermissibleValue( + text="SI-070", + description="Region code for Maribor.")) + setattr(cls, "SI-071", + PermissibleValue( + text="SI-071", + description="Region code for Medvode.")) + setattr(cls, "SI-072", + PermissibleValue( + text="SI-072", + description="Region code for Mengeš.")) + setattr(cls, "SI-073", + PermissibleValue( + text="SI-073", + description="Region code for Metlika.")) + setattr(cls, "SI-074", + PermissibleValue( + text="SI-074", + description="Region code for Mežica.")) + setattr(cls, "SI-075", + PermissibleValue( + text="SI-075", + description="Region code for Miren-Kostanjevica.")) + setattr(cls, "SI-076", + PermissibleValue( + text="SI-076", + description="Region code for Mislinja.")) + setattr(cls, "SI-077", + PermissibleValue( + text="SI-077", + description="Region code for Moravče.")) + setattr(cls, "SI-078", + PermissibleValue( + text="SI-078", + description="Region code for Moravske Toplice.")) + setattr(cls, "SI-079", + PermissibleValue( + text="SI-079", + description="Region code for Mozirje.")) + setattr(cls, "SI-080", + PermissibleValue( + text="SI-080", + description="Region code for Murska Sobota.")) + setattr(cls, "SI-081", + PermissibleValue( + text="SI-081", + description="Region code for Muta.")) + setattr(cls, "SI-082", + PermissibleValue( + text="SI-082", + description="Region code for Naklo.")) + setattr(cls, "SI-083", + PermissibleValue( + text="SI-083", + description="Region code for Nazarje.")) + setattr(cls, "SI-084", + PermissibleValue( + text="SI-084", + description="Region code for Nova Gorica.")) + setattr(cls, "SI-085", + PermissibleValue( + text="SI-085", + description="Region code for Novo Mesto.")) + setattr(cls, "SI-086", + PermissibleValue( + text="SI-086", + description="Region code for Odranci.")) + setattr(cls, "SI-087", + PermissibleValue( + text="SI-087", + description="Region code for Ormož.")) + setattr(cls, "SI-088", + PermissibleValue( + text="SI-088", + description="Region code for Osilnica.")) + setattr(cls, "SI-089", + PermissibleValue( + text="SI-089", + description="Region code for Pesnica.")) + setattr(cls, "SI-090", + PermissibleValue( + text="SI-090", + description="Region code for Piran.")) + setattr(cls, "SI-091", + PermissibleValue( + text="SI-091", + description="Region code for Pivka.")) + setattr(cls, "SI-092", + PermissibleValue( + text="SI-092", + description="Region code for Podčetrtek.")) + setattr(cls, "SI-093", + PermissibleValue( + text="SI-093", + description="Region code for Podvelka.")) + setattr(cls, "SI-094", + PermissibleValue( + text="SI-094", + description="Region code for Postojna.")) + setattr(cls, "SI-095", + PermissibleValue( + text="SI-095", + description="Region code for Preddvor.")) + setattr(cls, "SI-096", + PermissibleValue( + text="SI-096", + description="Region code for Ptuj.")) + setattr(cls, "SI-097", + PermissibleValue( + text="SI-097", + description="Region code for Puconci.")) + setattr(cls, "SI-098", + PermissibleValue( + text="SI-098", + description="Region code for Rače-Fram.")) + setattr(cls, "SI-099", + PermissibleValue( + text="SI-099", + description="Region code for Radeče.")) + setattr(cls, "SI-100", + PermissibleValue( + text="SI-100", + description="Region code for Radenci.")) + setattr(cls, "SI-101", + PermissibleValue( + text="SI-101", + description="Region code for Radlje ob Dravi.")) + setattr(cls, "SI-102", + PermissibleValue( + text="SI-102", + description="Region code for Radovljica.")) + setattr(cls, "SI-103", + PermissibleValue( + text="SI-103", + description="Region code for Ravne na Koroškem.")) + setattr(cls, "SI-104", + PermissibleValue( + text="SI-104", + description="Region code for Ribnica.")) + setattr(cls, "SI-105", + PermissibleValue( + text="SI-105", + description="Region code for Rogašovci.")) + setattr(cls, "SI-106", + PermissibleValue( + text="SI-106", + description="Region code for Rogaška Slatina.")) + setattr(cls, "SI-107", + PermissibleValue( + text="SI-107", + description="Region code for Rogatec.")) + setattr(cls, "SI-108", + PermissibleValue( + text="SI-108", + description="Region code for Ruše.")) + setattr(cls, "SI-109", + PermissibleValue( + text="SI-109", + description="Region code for Semič.")) + setattr(cls, "SI-110", + PermissibleValue( + text="SI-110", + description="Region code for Sevnica.")) + setattr(cls, "SI-111", + PermissibleValue( + text="SI-111", + description="Region code for Sežana.")) + setattr(cls, "SI-112", + PermissibleValue( + text="SI-112", + description="Region code for Slovenj Gradec.")) + setattr(cls, "SI-113", + PermissibleValue( + text="SI-113", + description="Region code for Slovenska Bistrica.")) + setattr(cls, "SI-114", + PermissibleValue( + text="SI-114", + description="Region code for Slovenske Konjice.")) + setattr(cls, "SI-115", + PermissibleValue( + text="SI-115", + description="Region code for Starše.")) + setattr(cls, "SI-116", + PermissibleValue( + text="SI-116", + description="Region code for Sveti Jurij ob Ščavnici.")) + setattr(cls, "SI-117", + PermissibleValue( + text="SI-117", + description="Region code for Šenčur.")) + setattr(cls, "SI-118", + PermissibleValue( + text="SI-118", + description="Region code for Šentilj.")) + setattr(cls, "SI-119", + PermissibleValue( + text="SI-119", + description="Region code for Šentjernej.")) + setattr(cls, "SI-120", + PermissibleValue( + text="SI-120", + description="Region code for Šentjur.")) + setattr(cls, "SI-121", + PermissibleValue( + text="SI-121", + description="Region code for Škocjan.")) + setattr(cls, "SI-122", + PermissibleValue( + text="SI-122", + description="Region code for Škofja Loka.")) + setattr(cls, "SI-123", + PermissibleValue( + text="SI-123", + description="Region code for Škofljica.")) + setattr(cls, "SI-124", + PermissibleValue( + text="SI-124", + description="Region code for Šmarje pri Jelšah.")) + setattr(cls, "SI-125", + PermissibleValue( + text="SI-125", + description="Region code for Šmartno ob Paki.")) + setattr(cls, "SI-126", + PermissibleValue( + text="SI-126", + description="Region code for Šoštanj.")) + setattr(cls, "SI-127", + PermissibleValue( + text="SI-127", + description="Region code for Štore.")) + setattr(cls, "SI-128", + PermissibleValue( + text="SI-128", + description="Region code for Tolmin.")) + setattr(cls, "SI-129", + PermissibleValue( + text="SI-129", + description="Region code for Trbovlje.")) + setattr(cls, "SI-130", + PermissibleValue( + text="SI-130", + description="Region code for Trebnje.")) + setattr(cls, "SI-131", + PermissibleValue( + text="SI-131", + description="Region code for Tržič.")) + setattr(cls, "SI-132", + PermissibleValue( + text="SI-132", + description="Region code for Turnišče.")) + setattr(cls, "SI-133", + PermissibleValue( + text="SI-133", + description="Region code for Velenje.")) + setattr(cls, "SI-134", + PermissibleValue( + text="SI-134", + description="Region code for Velike Lašče.")) + setattr(cls, "SI-135", + PermissibleValue( + text="SI-135", + description="Region code for Videm.")) + setattr(cls, "SI-136", + PermissibleValue( + text="SI-136", + description="Region code for Vipava.")) + setattr(cls, "SI-137", + PermissibleValue( + text="SI-137", + description="Region code for Vitanje.")) + setattr(cls, "SI-138", + PermissibleValue( + text="SI-138", + description="Region code for Vodice.")) + setattr(cls, "SI-139", + PermissibleValue( + text="SI-139", + description="Region code for Vojnik.")) + setattr(cls, "SI-140", + PermissibleValue( + text="SI-140", + description="Region code for Vrhnika.")) + setattr(cls, "SI-141", + PermissibleValue( + text="SI-141", + description="Region code for Vuzenica.")) + setattr(cls, "SI-142", + PermissibleValue( + text="SI-142", + description="Region code for Zagorje ob Savi.")) + setattr(cls, "SI-143", + PermissibleValue( + text="SI-143", + description="Region code for Zavrč.")) + setattr(cls, "SI-144", + PermissibleValue( + text="SI-144", + description="Region code for Zreče.")) + setattr(cls, "SI-146", + PermissibleValue( + text="SI-146", + description="Region code for Železniki.")) + setattr(cls, "SI-147", + PermissibleValue( + text="SI-147", + description="Region code for Žiri.")) + setattr(cls, "SI-148", + PermissibleValue( + text="SI-148", + description="Region code for Benedikt.")) + setattr(cls, "SI-149", + PermissibleValue( + text="SI-149", + description="Region code for Bistrica ob Sotli.")) + setattr(cls, "SI-150", + PermissibleValue( + text="SI-150", + description="Region code for Bloke.")) + setattr(cls, "SI-151", + PermissibleValue( + text="SI-151", + description="Region code for Braslovče.")) + setattr(cls, "SI-152", + PermissibleValue( + text="SI-152", + description="Region code for Cankova.")) + setattr(cls, "SI-153", + PermissibleValue( + text="SI-153", + description="Region code for Cerkvenjak.")) + setattr(cls, "SI-154", + PermissibleValue( + text="SI-154", + description="Region code for Dobje.")) + setattr(cls, "SI-155", + PermissibleValue( + text="SI-155", + description="Region code for Dobrna.")) + setattr(cls, "SI-156", + PermissibleValue( + text="SI-156", + description="Region code for Dobrovnik.")) + setattr(cls, "SI-157", + PermissibleValue( + text="SI-157", + description="Region code for Dolenjske Toplice.")) + setattr(cls, "SI-158", + PermissibleValue( + text="SI-158", + description="Region code for Grad.")) + setattr(cls, "SI-159", + PermissibleValue( + text="SI-159", + description="Region code for Hajdina.")) + setattr(cls, "SI-160", + PermissibleValue( + text="SI-160", + description="Region code for Hoče-Slivnica.")) + setattr(cls, "SI-161", + PermissibleValue( + text="SI-161", + description="Region code for Hodoš.")) + setattr(cls, "SI-162", + PermissibleValue( + text="SI-162", + description="Region code for Horjul.")) + setattr(cls, "SI-163", + PermissibleValue( + text="SI-163", + description="Region code for Jezersko.")) + setattr(cls, "SI-164", + PermissibleValue( + text="SI-164", + description="Region code for Komenda.")) + setattr(cls, "SI-165", + PermissibleValue( + text="SI-165", + description="Region code for Kostel.")) + setattr(cls, "SI-166", + PermissibleValue( + text="SI-166", + description="Region code for Križevci.")) + setattr(cls, "SI-167", + PermissibleValue( + text="SI-167", + description="Region code for Lovrenc na Pohorju.")) + setattr(cls, "SI-168", + PermissibleValue( + text="SI-168", + description="Region code for Markovci.")) + setattr(cls, "SI-169", + PermissibleValue( + text="SI-169", + description="Region code for Miklavž na Dravskem polju.")) + setattr(cls, "SI-170", + PermissibleValue( + text="SI-170", + description="Region code for Mirna Peč.")) + setattr(cls, "SI-171", + PermissibleValue( + text="SI-171", + description="Region code for Oplotnica.")) + setattr(cls, "SI-172", + PermissibleValue( + text="SI-172", + description="Region code for Podlehnik.")) + setattr(cls, "SI-173", + PermissibleValue( + text="SI-173", + description="Region code for Polzela.")) + setattr(cls, "SI-174", + PermissibleValue( + text="SI-174", + description="Region code for Prebold.")) + setattr(cls, "SI-175", + PermissibleValue( + text="SI-175", + description="Region code for Prevalje.")) + setattr(cls, "SI-176", + PermissibleValue( + text="SI-176", + description="Region code for Razkrižje.")) + setattr(cls, "SI-177", + PermissibleValue( + text="SI-177", + description="Region code for Ribnica na Pohorju.")) + setattr(cls, "SI-178", + PermissibleValue( + text="SI-178", + description="Region code for Selnica ob Dravi.")) + setattr(cls, "SI-179", + PermissibleValue( + text="SI-179", + description="Region code for Sodražica.")) + setattr(cls, "SI-180", + PermissibleValue( + text="SI-180", + description="Region code for Solčava.")) + setattr(cls, "SI-181", + PermissibleValue( + text="SI-181", + description="Region code for Sveta Ana.")) + setattr(cls, "SI-182", + PermissibleValue( + text="SI-182", + description="Region code for Sveti Andraž v Slovenskih goricah.")) + setattr(cls, "SI-183", + PermissibleValue( + text="SI-183", + description="Region code for Šempeter-Vrtojba.")) + setattr(cls, "SI-184", + PermissibleValue( + text="SI-184", + description="Region code for Tabor.")) + setattr(cls, "SI-185", + PermissibleValue( + text="SI-185", + description="Region code for Trnovska Vas.")) + setattr(cls, "SI-186", + PermissibleValue( + text="SI-186", + description="Region code for Trzin.")) + setattr(cls, "SI-187", + PermissibleValue( + text="SI-187", + description="Region code for Velika Polana.")) + setattr(cls, "SI-188", + PermissibleValue( + text="SI-188", + description="Region code for Veržej.")) + setattr(cls, "SI-189", + PermissibleValue( + text="SI-189", + description="Region code for Vransko.")) + setattr(cls, "SI-190", + PermissibleValue( + text="SI-190", + description="Region code for Žalec.")) + setattr(cls, "SI-191", + PermissibleValue( + text="SI-191", + description="Region code for Žetale.")) + setattr(cls, "SI-192", + PermissibleValue( + text="SI-192", + description="Region code for Žirovnica.")) + setattr(cls, "SI-193", + PermissibleValue( + text="SI-193", + description="Region code for Žužemberk.")) + setattr(cls, "SI-194", + PermissibleValue( + text="SI-194", + description="Region code for Šmartno pri Litiji.")) + setattr(cls, "SI-195", + PermissibleValue( + text="SI-195", + description="Region code for Apače.")) + setattr(cls, "SI-196", + PermissibleValue( + text="SI-196", + description="Region code for Cirkulane.")) + setattr(cls, "SI-197", + PermissibleValue( + text="SI-197", + description="Region code for Kostanjevica na Krki.")) + setattr(cls, "SI-198", + PermissibleValue( + text="SI-198", + description="Region code for Makole.")) + setattr(cls, "SI-199", + PermissibleValue( + text="SI-199", + description="Region code for Mokronog-Trebelno.")) + setattr(cls, "SI-200", + PermissibleValue( + text="SI-200", + description="Region code for Poljčane.")) + setattr(cls, "SI-201", + PermissibleValue( + text="SI-201", + description="Region code for Renče-Vogrsko.")) + setattr(cls, "SI-202", + PermissibleValue( + text="SI-202", + description="Region code for Središče ob Dravi.")) + setattr(cls, "SI-203", + PermissibleValue( + text="SI-203", + description="Region code for Straža.")) + setattr(cls, "SI-204", + PermissibleValue( + text="SI-204", + description="Region code for Sveta Trojica v Slovenskih goricah.")) + setattr(cls, "SI-205", + PermissibleValue( + text="SI-205", + description="Region code for Sveti Tomaž.")) + setattr(cls, "SI-206", + PermissibleValue( + text="SI-206", + description="Region code for Šmarješke Toplice.")) + setattr(cls, "SI-207", + PermissibleValue( + text="SI-207", + description="Region code for Gorje.")) + setattr(cls, "SI-208", + PermissibleValue( + text="SI-208", + description="Region code for Log-Dragomer.")) + setattr(cls, "SI-209", + PermissibleValue( + text="SI-209", + description="Region code for Rečica ob Savinji.")) + setattr(cls, "SI-210", + PermissibleValue( + text="SI-210", + description="Region code for Sveti Jurij v Slovenskih goricah.")) + setattr(cls, "SI-211", + PermissibleValue( + text="SI-211", + description="Region code for Šentrupert.")) + setattr(cls, "SI-212", + PermissibleValue( + text="SI-212", + description="Region code for Mirna.")) + setattr(cls, "SI-213", + PermissibleValue( + text="SI-213", + description="Region code for Ankaran.")) + setattr(cls, "SK-BC", + PermissibleValue( + text="SK-BC", + description="Region code for Banskobystrický kraj.")) + setattr(cls, "SK-BL", + PermissibleValue( + text="SK-BL", + description="Region code for Bratislavský kraj.")) + setattr(cls, "SK-KI", + PermissibleValue( + text="SK-KI", + description="Region code for Košický kraj.")) + setattr(cls, "SK-NI", + PermissibleValue( + text="SK-NI", + description="Region code for Nitriansky kraj.")) + setattr(cls, "SK-PV", + PermissibleValue( + text="SK-PV", + description="Region code for Prešovský kraj.")) + setattr(cls, "SK-TA", + PermissibleValue( + text="SK-TA", + description="Region code for Trnavský kraj.")) + setattr(cls, "SK-TC", + PermissibleValue( + text="SK-TC", + description="Region code for Trenčiansky kraj.")) + setattr(cls, "SK-ZI", + PermissibleValue( + text="SK-ZI", + description="Region code for Žilinský kraj.")) + setattr(cls, "SL-E", + PermissibleValue( + text="SL-E", + description="Region code for Eastern.")) + setattr(cls, "SL-N", + PermissibleValue( + text="SL-N", + description="Region code for Northern.")) + setattr(cls, "SL-NW", + PermissibleValue( + text="SL-NW", + description="Region code for North Western.")) + setattr(cls, "SL-S", + PermissibleValue( + text="SL-S", + description="Region code for Southern.")) + setattr(cls, "SL-W", + PermissibleValue( + text="SL-W", + description="Region code for Western Area (Freetown).")) + setattr(cls, "SM-01", + PermissibleValue( + text="SM-01", + description="Region code for Acquaviva.")) + setattr(cls, "SM-02", + PermissibleValue( + text="SM-02", + description="Region code for Chiesanuova.")) + setattr(cls, "SM-03", + PermissibleValue( + text="SM-03", + description="Region code for Domagnano.")) + setattr(cls, "SM-04", + PermissibleValue( + text="SM-04", + description="Region code for Faetano.")) + setattr(cls, "SM-05", + PermissibleValue( + text="SM-05", + description="Region code for Fiorentino.")) + setattr(cls, "SM-06", + PermissibleValue( + text="SM-06", + description="Region code for Borgo Maggiore.")) + setattr(cls, "SM-07", + PermissibleValue( + text="SM-07", + description="Region code for Città di San Marino.")) + setattr(cls, "SM-08", + PermissibleValue( + text="SM-08", + description="Region code for Montegiardino.")) + setattr(cls, "SM-09", + PermissibleValue( + text="SM-09", + description="Region code for Serravalle.")) + setattr(cls, "SN-DB", + PermissibleValue( + text="SN-DB", + description="Region code for Diourbel.")) + setattr(cls, "SN-DK", + PermissibleValue( + text="SN-DK", + description="Region code for Dakar.")) + setattr(cls, "SN-FK", + PermissibleValue( + text="SN-FK", + description="Region code for Fatick.")) + setattr(cls, "SN-KA", + PermissibleValue( + text="SN-KA", + description="Region code for Kaffrine.")) + setattr(cls, "SN-KD", + PermissibleValue( + text="SN-KD", + description="Region code for Kolda.")) + setattr(cls, "SN-KE", + PermissibleValue( + text="SN-KE", + description="Region code for Kédougou.")) + setattr(cls, "SN-KL", + PermissibleValue( + text="SN-KL", + description="Region code for Kaolack.")) + setattr(cls, "SN-LG", + PermissibleValue( + text="SN-LG", + description="Region code for Louga.")) + setattr(cls, "SN-MT", + PermissibleValue( + text="SN-MT", + description="Region code for Matam.")) + setattr(cls, "SN-SE", + PermissibleValue( + text="SN-SE", + description="Region code for Sédhiou.")) + setattr(cls, "SN-SL", + PermissibleValue( + text="SN-SL", + description="Region code for Saint-Louis.")) + setattr(cls, "SN-TC", + PermissibleValue( + text="SN-TC", + description="Region code for Tambacounda.")) + setattr(cls, "SN-TH", + PermissibleValue( + text="SN-TH", + description="Region code for Thiès.")) + setattr(cls, "SN-ZG", + PermissibleValue( + text="SN-ZG", + description="Region code for Ziguinchor.")) + setattr(cls, "SO-AW", + PermissibleValue( + text="SO-AW", + description="Region code for Awdal.")) + setattr(cls, "SO-BK", + PermissibleValue( + text="SO-BK", + description="Region code for Bakool.")) + setattr(cls, "SO-BN", + PermissibleValue( + text="SO-BN", + description="Region code for Banaadir.")) + setattr(cls, "SO-BR", + PermissibleValue( + text="SO-BR", + description="Region code for Bari.")) + setattr(cls, "SO-BY", + PermissibleValue( + text="SO-BY", + description="Region code for Bay.")) + setattr(cls, "SO-GA", + PermissibleValue( + text="SO-GA", + description="Region code for Galguduud.")) + setattr(cls, "SO-GE", + PermissibleValue( + text="SO-GE", + description="Region code for Gedo.")) + setattr(cls, "SO-HI", + PermissibleValue( + text="SO-HI", + description="Region code for Hiiraan.")) + setattr(cls, "SO-JD", + PermissibleValue( + text="SO-JD", + description="Region code for Jubbada Dhexe.")) + setattr(cls, "SO-JH", + PermissibleValue( + text="SO-JH", + description="Region code for Jubbada Hoose.")) + setattr(cls, "SO-MU", + PermissibleValue( + text="SO-MU", + description="Region code for Mudug.")) + setattr(cls, "SO-NU", + PermissibleValue( + text="SO-NU", + description="Region code for Nugaal.")) + setattr(cls, "SO-SA", + PermissibleValue( + text="SO-SA", + description="Region code for Sanaag.")) + setattr(cls, "SO-SD", + PermissibleValue( + text="SO-SD", + description="Region code for Shabeellaha Dhexe.")) + setattr(cls, "SO-SH", + PermissibleValue( + text="SO-SH", + description="Region code for Shabeellaha Hoose.")) + setattr(cls, "SO-SO", + PermissibleValue( + text="SO-SO", + description="Region code for Sool.")) + setattr(cls, "SO-TO", + PermissibleValue( + text="SO-TO", + description="Region code for Togdheer.")) + setattr(cls, "SO-WO", + PermissibleValue( + text="SO-WO", + description="Region code for Woqooyi Galbeed.")) + setattr(cls, "SR-BR", + PermissibleValue( + text="SR-BR", + description="Region code for Brokopondo.")) + setattr(cls, "SR-CM", + PermissibleValue( + text="SR-CM", + description="Region code for Commewijne.")) + setattr(cls, "SR-CR", + PermissibleValue( + text="SR-CR", + description="Region code for Coronie.")) + setattr(cls, "SR-MA", + PermissibleValue( + text="SR-MA", + description="Region code for Marowijne.")) + setattr(cls, "SR-NI", + PermissibleValue( + text="SR-NI", + description="Region code for Nickerie.")) + setattr(cls, "SR-PM", + PermissibleValue( + text="SR-PM", + description="Region code for Paramaribo.")) + setattr(cls, "SR-PR", + PermissibleValue( + text="SR-PR", + description="Region code for Para.")) + setattr(cls, "SR-SA", + PermissibleValue( + text="SR-SA", + description="Region code for Saramacca.")) + setattr(cls, "SR-SI", + PermissibleValue( + text="SR-SI", + description="Region code for Sipaliwini.")) + setattr(cls, "SR-WA", + PermissibleValue( + text="SR-WA", + description="Region code for Wanica.")) + setattr(cls, "SS-BN", + PermissibleValue( + text="SS-BN", + description="Region code for Northern Bahr el Ghazal.")) + setattr(cls, "SS-BW", + PermissibleValue( + text="SS-BW", + description="Region code for Western Bahr el Ghazal.")) + setattr(cls, "SS-EC", + PermissibleValue( + text="SS-EC", + description="Region code for Central Equatoria.")) + setattr(cls, "SS-EE", + PermissibleValue( + text="SS-EE", + description="Region code for Eastern Equatoria.")) + setattr(cls, "SS-EW", + PermissibleValue( + text="SS-EW", + description="Region code for Western Equatoria.")) + setattr(cls, "SS-JG", + PermissibleValue( + text="SS-JG", + description="Region code for Jonglei.")) + setattr(cls, "SS-LK", + PermissibleValue( + text="SS-LK", + description="Region code for Lakes.")) + setattr(cls, "SS-NU", + PermissibleValue( + text="SS-NU", + description="Region code for Upper Nile.")) + setattr(cls, "SS-UY", + PermissibleValue( + text="SS-UY", + description="Region code for Unity.")) + setattr(cls, "SS-WR", + PermissibleValue( + text="SS-WR", + description="Region code for Warrap.")) + setattr(cls, "ST-01", + PermissibleValue( + text="ST-01", + description="Region code for Água Grande.")) + setattr(cls, "ST-02", + PermissibleValue( + text="ST-02", + description="Region code for Cantagalo.")) + setattr(cls, "ST-03", + PermissibleValue( + text="ST-03", + description="Region code for Caué.")) + setattr(cls, "ST-04", + PermissibleValue( + text="ST-04", + description="Region code for Lembá.")) + setattr(cls, "ST-05", + PermissibleValue( + text="ST-05", + description="Region code for Lobata.")) + setattr(cls, "ST-06", + PermissibleValue( + text="ST-06", + description="Region code for Mé-Zóchi.")) + setattr(cls, "ST-P", + PermissibleValue( + text="ST-P", + description="Region code for Príncipe.")) + setattr(cls, "SV-AH", + PermissibleValue( + text="SV-AH", + description="Region code for Ahuachapán.")) + setattr(cls, "SV-CA", + PermissibleValue( + text="SV-CA", + description="Region code for Cabañas.")) + setattr(cls, "SV-CH", + PermissibleValue( + text="SV-CH", + description="Region code for Chalatenango.")) + setattr(cls, "SV-CU", + PermissibleValue( + text="SV-CU", + description="Region code for Cuscatlán.")) + setattr(cls, "SV-LI", + PermissibleValue( + text="SV-LI", + description="Region code for La Libertad.")) + setattr(cls, "SV-MO", + PermissibleValue( + text="SV-MO", + description="Region code for Morazán.")) + setattr(cls, "SV-PA", + PermissibleValue( + text="SV-PA", + description="Region code for La Paz.")) + setattr(cls, "SV-SA", + PermissibleValue( + text="SV-SA", + description="Region code for Santa Ana.")) + setattr(cls, "SV-SM", + PermissibleValue( + text="SV-SM", + description="Region code for San Miguel.")) + setattr(cls, "SV-SO", + PermissibleValue( + text="SV-SO", + description="Region code for Sonsonate.")) + setattr(cls, "SV-SS", + PermissibleValue( + text="SV-SS", + description="Region code for San Salvador.")) + setattr(cls, "SV-SV", + PermissibleValue( + text="SV-SV", + description="Region code for San Vicente.")) + setattr(cls, "SV-UN", + PermissibleValue( + text="SV-UN", + description="Region code for La Unión.")) + setattr(cls, "SV-US", + PermissibleValue( + text="SV-US", + description="Region code for Usulután.")) + setattr(cls, "SY-DI", + PermissibleValue( + text="SY-DI", + description="Region code for Dimashq.")) + setattr(cls, "SY-DR", + PermissibleValue( + text="SY-DR", + description="Region code for Dar'ā.")) + setattr(cls, "SY-DY", + PermissibleValue( + text="SY-DY", + description="Region code for Dayr az Zawr.")) + setattr(cls, "SY-HA", + PermissibleValue( + text="SY-HA", + description="Region code for Al Ḩasakah.")) + setattr(cls, "SY-HI", + PermissibleValue( + text="SY-HI", + description="Region code for Ḩimş.")) + setattr(cls, "SY-HL", + PermissibleValue( + text="SY-HL", + description="Region code for Ḩalab.")) + setattr(cls, "SY-HM", + PermissibleValue( + text="SY-HM", + description="Region code for Ḩamāh.")) + setattr(cls, "SY-ID", + PermissibleValue( + text="SY-ID", + description="Region code for Idlib.")) + setattr(cls, "SY-LA", + PermissibleValue( + text="SY-LA", + description="Region code for Al Lādhiqīyah.")) + setattr(cls, "SY-QU", + PermissibleValue( + text="SY-QU", + description="Region code for Al Qunayţirah.")) + setattr(cls, "SY-RA", + PermissibleValue( + text="SY-RA", + description="Region code for Ar Raqqah.")) + setattr(cls, "SY-RD", + PermissibleValue( + text="SY-RD", + description="Region code for Rīf Dimashq.")) + setattr(cls, "SY-SU", + PermissibleValue( + text="SY-SU", + description="Region code for As Suwaydā'.")) + setattr(cls, "SY-TA", + PermissibleValue( + text="SY-TA", + description="Region code for Ţarţūs.")) + setattr(cls, "SZ-HH", + PermissibleValue( + text="SZ-HH", + description="Region code for Hhohho.")) + setattr(cls, "SZ-LU", + PermissibleValue( + text="SZ-LU", + description="Region code for Lubombo.")) + setattr(cls, "SZ-MA", + PermissibleValue( + text="SZ-MA", + description="Region code for Manzini.")) + setattr(cls, "SZ-SH", + PermissibleValue( + text="SZ-SH", + description="Region code for Shiselweni.")) + setattr(cls, "TD-BA", + PermissibleValue( + text="TD-BA", + description="Region code for Al Baţḩā’.")) + setattr(cls, "TD-BG", + PermissibleValue( + text="TD-BG", + description="Region code for Baḩr al Ghazāl.")) + setattr(cls, "TD-BO", + PermissibleValue( + text="TD-BO", + description="Region code for Būrkū.")) + setattr(cls, "TD-CB", + PermissibleValue( + text="TD-CB", + description="Region code for Shārī Bāqirmī.")) + setattr(cls, "TD-EE", + PermissibleValue( + text="TD-EE", + description="Region code for Inīdī ash Sharqī.")) + setattr(cls, "TD-EO", + PermissibleValue( + text="TD-EO", + description="Region code for Inīdī al Gharbī.")) + setattr(cls, "TD-GR", + PermissibleValue( + text="TD-GR", + description="Region code for Qīrā.")) + setattr(cls, "TD-HL", + PermissibleValue( + text="TD-HL", + description="Region code for Ḩajjar Lamīs.")) + setattr(cls, "TD-KA", + PermissibleValue( + text="TD-KA", + description="Region code for Kānim.")) + setattr(cls, "TD-LC", + PermissibleValue( + text="TD-LC", + description="Region code for Al Buḩayrah.")) + setattr(cls, "TD-LO", + PermissibleValue( + text="TD-LO", + description="Region code for Lūghūn al Gharbī.")) + setattr(cls, "TD-LR", + PermissibleValue( + text="TD-LR", + description="Region code for Lūghūn ash Sharqī.")) + setattr(cls, "TD-MA", + PermissibleValue( + text="TD-MA", + description="Region code for Māndūl.")) + setattr(cls, "TD-MC", + PermissibleValue( + text="TD-MC", + description="Region code for Shārī al Awsaţ.")) + setattr(cls, "TD-ME", + PermissibleValue( + text="TD-ME", + description="Region code for Māyū Kībbī ash Sharqī.")) + setattr(cls, "TD-MO", + PermissibleValue( + text="TD-MO", + description="Region code for Māyū Kībbī al Gharbī.")) + setattr(cls, "TD-ND", + PermissibleValue( + text="TD-ND", + description="Region code for Madīnat Injamīnā.")) + setattr(cls, "TD-OD", + PermissibleValue( + text="TD-OD", + description="Region code for Waddāy.")) + setattr(cls, "TD-SA", + PermissibleValue( + text="TD-SA", + description="Region code for Salāmāt.")) + setattr(cls, "TD-SI", + PermissibleValue( + text="TD-SI", + description="Region code for Sīlā.")) + setattr(cls, "TD-TA", + PermissibleValue( + text="TD-TA", + description="Region code for Tānjīlī.")) + setattr(cls, "TD-TI", + PermissibleValue( + text="TD-TI", + description="Region code for Tibastī.")) + setattr(cls, "TD-WF", + PermissibleValue( + text="TD-WF", + description="Region code for Wādī Fīrā’.")) + setattr(cls, "TG-C", + PermissibleValue( + text="TG-C", + description="Region code for Centrale.")) + setattr(cls, "TG-K", + PermissibleValue( + text="TG-K", + description="Region code for Kara.")) + setattr(cls, "TG-M", + PermissibleValue( + text="TG-M", + description="Region code for Maritime (Région).")) + setattr(cls, "TG-P", + PermissibleValue( + text="TG-P", + description="Region code for Plateaux.")) + setattr(cls, "TG-S", + PermissibleValue( + text="TG-S", + description="Region code for Savanes.")) + setattr(cls, "TH-10", + PermissibleValue( + text="TH-10", + description="Region code for Krung Thep Maha Nakhon.")) + setattr(cls, "TH-11", + PermissibleValue( + text="TH-11", + description="Region code for Samut Prakan.")) + setattr(cls, "TH-12", + PermissibleValue( + text="TH-12", + description="Region code for Nonthaburi.")) + setattr(cls, "TH-13", + PermissibleValue( + text="TH-13", + description="Region code for Pathum Thani.")) + setattr(cls, "TH-14", + PermissibleValue( + text="TH-14", + description="Region code for Phra Nakhon Si Ayutthaya.")) + setattr(cls, "TH-15", + PermissibleValue( + text="TH-15", + description="Region code for Ang Thong.")) + setattr(cls, "TH-16", + PermissibleValue( + text="TH-16", + description="Region code for Lop Buri.")) + setattr(cls, "TH-17", + PermissibleValue( + text="TH-17", + description="Region code for Sing Buri.")) + setattr(cls, "TH-18", + PermissibleValue( + text="TH-18", + description="Region code for Chai Nat.")) + setattr(cls, "TH-19", + PermissibleValue( + text="TH-19", + description="Region code for Saraburi.")) + setattr(cls, "TH-20", + PermissibleValue( + text="TH-20", + description="Region code for Chon Buri.")) + setattr(cls, "TH-21", + PermissibleValue( + text="TH-21", + description="Region code for Rayong.")) + setattr(cls, "TH-22", + PermissibleValue( + text="TH-22", + description="Region code for Chanthaburi.")) + setattr(cls, "TH-23", + PermissibleValue( + text="TH-23", + description="Region code for Trat.")) + setattr(cls, "TH-24", + PermissibleValue( + text="TH-24", + description="Region code for Chachoengsao.")) + setattr(cls, "TH-25", + PermissibleValue( + text="TH-25", + description="Region code for Prachin Buri.")) + setattr(cls, "TH-26", + PermissibleValue( + text="TH-26", + description="Region code for Nakhon Nayok.")) + setattr(cls, "TH-27", + PermissibleValue( + text="TH-27", + description="Region code for Sa Kaeo.")) + setattr(cls, "TH-30", + PermissibleValue( + text="TH-30", + description="Region code for Nakhon Ratchasima.")) + setattr(cls, "TH-31", + PermissibleValue( + text="TH-31", + description="Region code for Buri Ram.")) + setattr(cls, "TH-32", + PermissibleValue( + text="TH-32", + description="Region code for Surin.")) + setattr(cls, "TH-33", + PermissibleValue( + text="TH-33", + description="Region code for Si Sa Ket.")) + setattr(cls, "TH-34", + PermissibleValue( + text="TH-34", + description="Region code for Ubon Ratchathani.")) + setattr(cls, "TH-35", + PermissibleValue( + text="TH-35", + description="Region code for Yasothon.")) + setattr(cls, "TH-36", + PermissibleValue( + text="TH-36", + description="Region code for Chaiyaphum.")) + setattr(cls, "TH-37", + PermissibleValue( + text="TH-37", + description="Region code for Amnat Charoen.")) + setattr(cls, "TH-38", + PermissibleValue( + text="TH-38", + description="Region code for Bueng Kan.")) + setattr(cls, "TH-39", + PermissibleValue( + text="TH-39", + description="Region code for Nong Bua Lam Phu.")) + setattr(cls, "TH-40", + PermissibleValue( + text="TH-40", + description="Region code for Khon Kaen.")) + setattr(cls, "TH-41", + PermissibleValue( + text="TH-41", + description="Region code for Udon Thani.")) + setattr(cls, "TH-42", + PermissibleValue( + text="TH-42", + description="Region code for Loei.")) + setattr(cls, "TH-43", + PermissibleValue( + text="TH-43", + description="Region code for Nong Khai.")) + setattr(cls, "TH-44", + PermissibleValue( + text="TH-44", + description="Region code for Maha Sarakham.")) + setattr(cls, "TH-45", + PermissibleValue( + text="TH-45", + description="Region code for Roi Et.")) + setattr(cls, "TH-46", + PermissibleValue( + text="TH-46", + description="Region code for Kalasin.")) + setattr(cls, "TH-47", + PermissibleValue( + text="TH-47", + description="Region code for Sakon Nakhon.")) + setattr(cls, "TH-48", + PermissibleValue( + text="TH-48", + description="Region code for Nakhon Phanom.")) + setattr(cls, "TH-49", + PermissibleValue( + text="TH-49", + description="Region code for Mukdahan.")) + setattr(cls, "TH-50", + PermissibleValue( + text="TH-50", + description="Region code for Chiang Mai.")) + setattr(cls, "TH-51", + PermissibleValue( + text="TH-51", + description="Region code for Lamphun.")) + setattr(cls, "TH-52", + PermissibleValue( + text="TH-52", + description="Region code for Lampang.")) + setattr(cls, "TH-53", + PermissibleValue( + text="TH-53", + description="Region code for Uttaradit.")) + setattr(cls, "TH-54", + PermissibleValue( + text="TH-54", + description="Region code for Phrae.")) + setattr(cls, "TH-55", + PermissibleValue( + text="TH-55", + description="Region code for Nan.")) + setattr(cls, "TH-56", + PermissibleValue( + text="TH-56", + description="Region code for Phayao.")) + setattr(cls, "TH-57", + PermissibleValue( + text="TH-57", + description="Region code for Chiang Rai.")) + setattr(cls, "TH-58", + PermissibleValue( + text="TH-58", + description="Region code for Mae Hong Son.")) + setattr(cls, "TH-60", + PermissibleValue( + text="TH-60", + description="Region code for Nakhon Sawan.")) + setattr(cls, "TH-61", + PermissibleValue( + text="TH-61", + description="Region code for Uthai Thani.")) + setattr(cls, "TH-62", + PermissibleValue( + text="TH-62", + description="Region code for Kamphaeng Phet.")) + setattr(cls, "TH-63", + PermissibleValue( + text="TH-63", + description="Region code for Tak.")) + setattr(cls, "TH-64", + PermissibleValue( + text="TH-64", + description="Region code for Sukhothai.")) + setattr(cls, "TH-65", + PermissibleValue( + text="TH-65", + description="Region code for Phitsanulok.")) + setattr(cls, "TH-66", + PermissibleValue( + text="TH-66", + description="Region code for Phichit.")) + setattr(cls, "TH-67", + PermissibleValue( + text="TH-67", + description="Region code for Phetchabun.")) + setattr(cls, "TH-70", + PermissibleValue( + text="TH-70", + description="Region code for Ratchaburi.")) + setattr(cls, "TH-71", + PermissibleValue( + text="TH-71", + description="Region code for Kanchanaburi.")) + setattr(cls, "TH-72", + PermissibleValue( + text="TH-72", + description="Region code for Suphan Buri.")) + setattr(cls, "TH-73", + PermissibleValue( + text="TH-73", + description="Region code for Nakhon Pathom.")) + setattr(cls, "TH-74", + PermissibleValue( + text="TH-74", + description="Region code for Samut Sakhon.")) + setattr(cls, "TH-75", + PermissibleValue( + text="TH-75", + description="Region code for Samut Songkhram.")) + setattr(cls, "TH-76", + PermissibleValue( + text="TH-76", + description="Region code for Phetchaburi.")) + setattr(cls, "TH-77", + PermissibleValue( + text="TH-77", + description="Region code for Prachuap Khiri Khan.")) + setattr(cls, "TH-80", + PermissibleValue( + text="TH-80", + description="Region code for Nakhon Si Thammarat.")) + setattr(cls, "TH-81", + PermissibleValue( + text="TH-81", + description="Region code for Krabi.")) + setattr(cls, "TH-82", + PermissibleValue( + text="TH-82", + description="Region code for Phangnga.")) + setattr(cls, "TH-83", + PermissibleValue( + text="TH-83", + description="Region code for Phuket.")) + setattr(cls, "TH-84", + PermissibleValue( + text="TH-84", + description="Region code for Surat Thani.")) + setattr(cls, "TH-85", + PermissibleValue( + text="TH-85", + description="Region code for Ranong.")) + setattr(cls, "TH-86", + PermissibleValue( + text="TH-86", + description="Region code for Chumphon.")) + setattr(cls, "TH-90", + PermissibleValue( + text="TH-90", + description="Region code for Songkhla.")) + setattr(cls, "TH-91", + PermissibleValue( + text="TH-91", + description="Region code for Satun.")) + setattr(cls, "TH-92", + PermissibleValue( + text="TH-92", + description="Region code for Trang.")) + setattr(cls, "TH-93", + PermissibleValue( + text="TH-93", + description="Region code for Phatthalung.")) + setattr(cls, "TH-94", + PermissibleValue( + text="TH-94", + description="Region code for Pattani.")) + setattr(cls, "TH-95", + PermissibleValue( + text="TH-95", + description="Region code for Yala.")) + setattr(cls, "TH-96", + PermissibleValue( + text="TH-96", + description="Region code for Narathiwat.")) + setattr(cls, "TH-S", + PermissibleValue( + text="TH-S", + description="Region code for Phatthaya.")) + setattr(cls, "TJ-DU", + PermissibleValue( + text="TJ-DU", + description="Region code for Dushanbe.")) + setattr(cls, "TJ-GB", + PermissibleValue( + text="TJ-GB", + description="Region code for Kŭhistoni Badakhshon.")) + setattr(cls, "TJ-KT", + PermissibleValue( + text="TJ-KT", + description="Region code for Khatlon.")) + setattr(cls, "TJ-RA", + PermissibleValue( + text="TJ-RA", + description="Region code for nohiyahoi tobei jumhurí.")) + setattr(cls, "TJ-SU", + PermissibleValue( + text="TJ-SU", + description="Region code for Sughd.")) + setattr(cls, "TL-AL", + PermissibleValue( + text="TL-AL", + description="Region code for Aileu.")) + setattr(cls, "TL-AN", + PermissibleValue( + text="TL-AN", + description="Region code for Ainaro.")) + setattr(cls, "TL-BA", + PermissibleValue( + text="TL-BA", + description="Region code for Baucau.")) + setattr(cls, "TL-BO", + PermissibleValue( + text="TL-BO", + description="Region code for Bobonaro.")) + setattr(cls, "TL-CO", + PermissibleValue( + text="TL-CO", + description="Region code for Cova Lima.")) + setattr(cls, "TL-DI", + PermissibleValue( + text="TL-DI", + description="Region code for Díli.")) + setattr(cls, "TL-ER", + PermissibleValue( + text="TL-ER", + description="Region code for Ermera.")) + setattr(cls, "TL-LA", + PermissibleValue( + text="TL-LA", + description="Region code for Lautém.")) + setattr(cls, "TL-LI", + PermissibleValue( + text="TL-LI", + description="Region code for Liquiça.")) + setattr(cls, "TL-MF", + PermissibleValue( + text="TL-MF", + description="Region code for Manufahi.")) + setattr(cls, "TL-MT", + PermissibleValue( + text="TL-MT", + description="Region code for Manatuto.")) + setattr(cls, "TL-OE", + PermissibleValue( + text="TL-OE", + description="Region code for Oé-Cusse Ambeno.")) + setattr(cls, "TL-VI", + PermissibleValue( + text="TL-VI", + description="Region code for Viqueque.")) + setattr(cls, "TM-A", + PermissibleValue( + text="TM-A", + description="Region code for Ahal.")) + setattr(cls, "TM-B", + PermissibleValue( + text="TM-B", + description="Region code for Balkan.")) + setattr(cls, "TM-D", + PermissibleValue( + text="TM-D", + description="Region code for Daşoguz.")) + setattr(cls, "TM-L", + PermissibleValue( + text="TM-L", + description="Region code for Lebap.")) + setattr(cls, "TM-M", + PermissibleValue( + text="TM-M", + description="Region code for Mary.")) + setattr(cls, "TM-S", + PermissibleValue( + text="TM-S", + description="Region code for Aşgabat.")) + setattr(cls, "TN-11", + PermissibleValue( + text="TN-11", + description="Region code for Tunis.")) + setattr(cls, "TN-12", + PermissibleValue( + text="TN-12", + description="Region code for L'Ariana.")) + setattr(cls, "TN-13", + PermissibleValue( + text="TN-13", + description="Region code for Ben Arous.")) + setattr(cls, "TN-14", + PermissibleValue( + text="TN-14", + description="Region code for La Manouba.")) + setattr(cls, "TN-21", + PermissibleValue( + text="TN-21", + description="Region code for Nabeul.")) + setattr(cls, "TN-22", + PermissibleValue( + text="TN-22", + description="Region code for Zaghouan.")) + setattr(cls, "TN-23", + PermissibleValue( + text="TN-23", + description="Region code for Bizerte.")) + setattr(cls, "TN-31", + PermissibleValue( + text="TN-31", + description="Region code for Béja.")) + setattr(cls, "TN-32", + PermissibleValue( + text="TN-32", + description="Region code for Jendouba.")) + setattr(cls, "TN-33", + PermissibleValue( + text="TN-33", + description="Region code for Le Kef.")) + setattr(cls, "TN-34", + PermissibleValue( + text="TN-34", + description="Region code for Siliana.")) + setattr(cls, "TN-41", + PermissibleValue( + text="TN-41", + description="Region code for Kairouan.")) + setattr(cls, "TN-42", + PermissibleValue( + text="TN-42", + description="Region code for Kasserine.")) + setattr(cls, "TN-43", + PermissibleValue( + text="TN-43", + description="Region code for Sidi Bouzid.")) + setattr(cls, "TN-51", + PermissibleValue( + text="TN-51", + description="Region code for Sousse.")) + setattr(cls, "TN-52", + PermissibleValue( + text="TN-52", + description="Region code for Monastir.")) + setattr(cls, "TN-53", + PermissibleValue( + text="TN-53", + description="Region code for Mahdia.")) + setattr(cls, "TN-61", + PermissibleValue( + text="TN-61", + description="Region code for Sfax.")) + setattr(cls, "TN-71", + PermissibleValue( + text="TN-71", + description="Region code for Gafsa.")) + setattr(cls, "TN-72", + PermissibleValue( + text="TN-72", + description="Region code for Tozeur.")) + setattr(cls, "TN-73", + PermissibleValue( + text="TN-73", + description="Region code for Kébili.")) + setattr(cls, "TN-81", + PermissibleValue( + text="TN-81", + description="Region code for Gabès.")) + setattr(cls, "TN-82", + PermissibleValue( + text="TN-82", + description="Region code for Médenine.")) + setattr(cls, "TN-83", + PermissibleValue( + text="TN-83", + description="Region code for Tataouine.")) + setattr(cls, "TO-01", + PermissibleValue( + text="TO-01", + description="Region code for 'Eua.")) + setattr(cls, "TO-02", + PermissibleValue( + text="TO-02", + description="Region code for Ha'apai.")) + setattr(cls, "TO-03", + PermissibleValue( + text="TO-03", + description="Region code for Niuas.")) + setattr(cls, "TO-04", + PermissibleValue( + text="TO-04", + description="Region code for Tongatapu.")) + setattr(cls, "TO-05", + PermissibleValue( + text="TO-05", + description="Region code for Vava'u.")) + setattr(cls, "TR-01", + PermissibleValue( + text="TR-01", + description="Region code for Adana.")) + setattr(cls, "TR-02", + PermissibleValue( + text="TR-02", + description="Region code for Adıyaman.")) + setattr(cls, "TR-03", + PermissibleValue( + text="TR-03", + description="Region code for Afyonkarahisar.")) + setattr(cls, "TR-04", + PermissibleValue( + text="TR-04", + description="Region code for Ağrı.")) + setattr(cls, "TR-05", + PermissibleValue( + text="TR-05", + description="Region code for Amasya.")) + setattr(cls, "TR-06", + PermissibleValue( + text="TR-06", + description="Region code for Ankara.")) + setattr(cls, "TR-07", + PermissibleValue( + text="TR-07", + description="Region code for Antalya.")) + setattr(cls, "TR-08", + PermissibleValue( + text="TR-08", + description="Region code for Artvin.")) + setattr(cls, "TR-09", + PermissibleValue( + text="TR-09", + description="Region code for Aydın.")) + setattr(cls, "TR-10", + PermissibleValue( + text="TR-10", + description="Region code for Balıkesir.")) + setattr(cls, "TR-11", + PermissibleValue( + text="TR-11", + description="Region code for Bilecik.")) + setattr(cls, "TR-12", + PermissibleValue( + text="TR-12", + description="Region code for Bingöl.")) + setattr(cls, "TR-13", + PermissibleValue( + text="TR-13", + description="Region code for Bitlis.")) + setattr(cls, "TR-14", + PermissibleValue( + text="TR-14", + description="Region code for Bolu.")) + setattr(cls, "TR-15", + PermissibleValue( + text="TR-15", + description="Region code for Burdur.")) + setattr(cls, "TR-16", + PermissibleValue( + text="TR-16", + description="Region code for Bursa.")) + setattr(cls, "TR-17", + PermissibleValue( + text="TR-17", + description="Region code for Çanakkale.")) + setattr(cls, "TR-18", + PermissibleValue( + text="TR-18", + description="Region code for Çankırı.")) + setattr(cls, "TR-19", + PermissibleValue( + text="TR-19", + description="Region code for Çorum.")) + setattr(cls, "TR-20", + PermissibleValue( + text="TR-20", + description="Region code for Denizli.")) + setattr(cls, "TR-21", + PermissibleValue( + text="TR-21", + description="Region code for Diyarbakır.")) + setattr(cls, "TR-22", + PermissibleValue( + text="TR-22", + description="Region code for Edirne.")) + setattr(cls, "TR-23", + PermissibleValue( + text="TR-23", + description="Region code for Elazığ.")) + setattr(cls, "TR-24", + PermissibleValue( + text="TR-24", + description="Region code for Erzincan.")) + setattr(cls, "TR-25", + PermissibleValue( + text="TR-25", + description="Region code for Erzurum.")) + setattr(cls, "TR-26", + PermissibleValue( + text="TR-26", + description="Region code for Eskişehir.")) + setattr(cls, "TR-27", PermissibleValue( - text="4", - description="Numeric code for Afghanistan.")) - setattr(cls, "818", + text="TR-27", + description="Region code for Gaziantep.")) + setattr(cls, "TR-28", PermissibleValue( - text="818", - description="Numeric code for Egypt.")) - setattr(cls, "248", + text="TR-28", + description="Region code for Giresun.")) + setattr(cls, "TR-29", PermissibleValue( - text="248", - description="Numeric code for Aland Islands.")) - setattr(cls, "008", + text="TR-29", + description="Region code for Gümüşhane.")) + setattr(cls, "TR-30", PermissibleValue( - text="008", - description="Numeric code for Albania.")) - setattr(cls, "10", + text="TR-30", + description="Region code for Hakkâri.")) + setattr(cls, "TR-31", PermissibleValue( - text="10", - description="Numeric code for Algeria.")) - setattr(cls, "850", + text="TR-31", + description="Region code for Hatay.")) + setattr(cls, "TR-32", PermissibleValue( - text="850", - description="Numeric code for Virgin Islands (U.S.).")) - setattr(cls, "581", + text="TR-32", + description="Region code for Isparta.")) + setattr(cls, "TR-33", PermissibleValue( - text="581", - description="Numeric code for United States Minor Outlying Islands (the).")) - setattr(cls, "14", + text="TR-33", + description="Region code for Mersin.")) + setattr(cls, "TR-34", PermissibleValue( - text="14", - description="Numeric code for American Samoa.")) - setattr(cls, "16", + text="TR-34", + description="Region code for İstanbul.")) + setattr(cls, "TR-35", PermissibleValue( - text="16", - description="Numeric code for Andorra.")) - setattr(cls, "20", + text="TR-35", + description="Region code for İzmir.")) + setattr(cls, "TR-36", PermissibleValue( - text="20", - description="Numeric code for Angola.")) - setattr(cls, "660", + text="TR-36", + description="Region code for Kars.")) + setattr(cls, "TR-37", PermissibleValue( - text="660", - description="Numeric code for Anguilla.")) - setattr(cls, "8", + text="TR-37", + description="Region code for Kastamonu.")) + setattr(cls, "TR-38", PermissibleValue( - text="8", - description="Numeric code for Antarctica.")) - setattr(cls, "028", + text="TR-38", + description="Region code for Kayseri.")) + setattr(cls, "TR-39", PermissibleValue( - text="028", - description="Numeric code for Antigua and Barbuda.")) - setattr(cls, "226", + text="TR-39", + description="Region code for Kırklareli.")) + setattr(cls, "TR-40", PermissibleValue( - text="226", - description="Numeric code for Equatorial Guinea.")) - setattr(cls, "760", + text="TR-40", + description="Region code for Kırşehir.")) + setattr(cls, "TR-41", + PermissibleValue( + text="TR-41", + description="Region code for Kocaeli.")) + setattr(cls, "TR-42", + PermissibleValue( + text="TR-42", + description="Region code for Konya.")) + setattr(cls, "TR-43", + PermissibleValue( + text="TR-43", + description="Region code for Kütahya.")) + setattr(cls, "TR-44", + PermissibleValue( + text="TR-44", + description="Region code for Malatya.")) + setattr(cls, "TR-45", + PermissibleValue( + text="TR-45", + description="Region code for Manisa.")) + setattr(cls, "TR-46", + PermissibleValue( + text="TR-46", + description="Region code for Kahramanmaraş.")) + setattr(cls, "TR-47", + PermissibleValue( + text="TR-47", + description="Region code for Mardin.")) + setattr(cls, "TR-48", + PermissibleValue( + text="TR-48", + description="Region code for Muğla.")) + setattr(cls, "TR-49", + PermissibleValue( + text="TR-49", + description="Region code for Muş.")) + setattr(cls, "TR-50", + PermissibleValue( + text="TR-50", + description="Region code for Nevşehir.")) + setattr(cls, "TR-51", + PermissibleValue( + text="TR-51", + description="Region code for Niğde.")) + setattr(cls, "TR-52", + PermissibleValue( + text="TR-52", + description="Region code for Ordu.")) + setattr(cls, "TR-53", + PermissibleValue( + text="TR-53", + description="Region code for Rize.")) + setattr(cls, "TR-54", + PermissibleValue( + text="TR-54", + description="Region code for Sakarya.")) + setattr(cls, "TR-55", + PermissibleValue( + text="TR-55", + description="Region code for Samsun.")) + setattr(cls, "TR-56", + PermissibleValue( + text="TR-56", + description="Region code for Siirt.")) + setattr(cls, "TR-57", + PermissibleValue( + text="TR-57", + description="Region code for Sinop.")) + setattr(cls, "TR-58", + PermissibleValue( + text="TR-58", + description="Region code for Sivas.")) + setattr(cls, "TR-59", + PermissibleValue( + text="TR-59", + description="Region code for Tekirdağ.")) + setattr(cls, "TR-60", + PermissibleValue( + text="TR-60", + description="Region code for Tokat.")) + setattr(cls, "TR-61", + PermissibleValue( + text="TR-61", + description="Region code for Trabzon.")) + setattr(cls, "TR-62", + PermissibleValue( + text="TR-62", + description="Region code for Tunceli.")) + setattr(cls, "TR-63", + PermissibleValue( + text="TR-63", + description="Region code for Şanlıurfa.")) + setattr(cls, "TR-64", + PermissibleValue( + text="TR-64", + description="Region code for Uşak.")) + setattr(cls, "TR-65", + PermissibleValue( + text="TR-65", + description="Region code for Van.")) + setattr(cls, "TR-66", + PermissibleValue( + text="TR-66", + description="Region code for Yozgat.")) + setattr(cls, "TR-67", + PermissibleValue( + text="TR-67", + description="Region code for Zonguldak.")) + setattr(cls, "TR-68", + PermissibleValue( + text="TR-68", + description="Region code for Aksaray.")) + setattr(cls, "TR-69", + PermissibleValue( + text="TR-69", + description="Region code for Bayburt.")) + setattr(cls, "TR-70", + PermissibleValue( + text="TR-70", + description="Region code for Karaman.")) + setattr(cls, "TR-71", + PermissibleValue( + text="TR-71", + description="Region code for Kırıkkale.")) + setattr(cls, "TR-72", + PermissibleValue( + text="TR-72", + description="Region code for Batman.")) + setattr(cls, "TR-73", + PermissibleValue( + text="TR-73", + description="Region code for Şırnak.")) + setattr(cls, "TR-74", + PermissibleValue( + text="TR-74", + description="Region code for Bartın.")) + setattr(cls, "TR-75", + PermissibleValue( + text="TR-75", + description="Region code for Ardahan.")) + setattr(cls, "TR-76", + PermissibleValue( + text="TR-76", + description="Region code for Iğdır.")) + setattr(cls, "TR-77", + PermissibleValue( + text="TR-77", + description="Region code for Yalova.")) + setattr(cls, "TR-78", + PermissibleValue( + text="TR-78", + description="Region code for Karabük.")) + setattr(cls, "TR-79", + PermissibleValue( + text="TR-79", + description="Region code for Kilis.")) + setattr(cls, "TR-80", + PermissibleValue( + text="TR-80", + description="Region code for Osmaniye.")) + setattr(cls, "TR-81", + PermissibleValue( + text="TR-81", + description="Region code for Düzce.")) + setattr(cls, "TT-ARI", + PermissibleValue( + text="TT-ARI", + description="Region code for Arima.")) + setattr(cls, "TT-CHA", + PermissibleValue( + text="TT-CHA", + description="Region code for Chaguanas.")) + setattr(cls, "TT-CTT", + PermissibleValue( + text="TT-CTT", + description="Region code for Couva-Tabaquite-Talparo.")) + setattr(cls, "TT-DMN", + PermissibleValue( + text="TT-DMN", + description="Region code for Diego Martin.")) + setattr(cls, "TT-MRC", + PermissibleValue( + text="TT-MRC", + description="Region code for Mayaro-Rio Claro.")) + setattr(cls, "TT-PED", + PermissibleValue( + text="TT-PED", + description="Region code for Penal-Debe.")) + setattr(cls, "TT-POS", + PermissibleValue( + text="TT-POS", + description="Region code for Port of Spain.")) + setattr(cls, "TT-PRT", + PermissibleValue( + text="TT-PRT", + description="Region code for Princes Town.")) + setattr(cls, "TT-PTF", + PermissibleValue( + text="TT-PTF", + description="Region code for Point Fortin.")) + setattr(cls, "TT-SFO", + PermissibleValue( + text="TT-SFO", + description="Region code for San Fernando.")) + setattr(cls, "TT-SGE", + PermissibleValue( + text="TT-SGE", + description="Region code for Sangre Grande.")) + setattr(cls, "TT-SIP", + PermissibleValue( + text="TT-SIP", + description="Region code for Siparia.")) + setattr(cls, "TT-SJL", + PermissibleValue( + text="TT-SJL", + description="Region code for San Juan-Laventille.")) + setattr(cls, "TT-TOB", + PermissibleValue( + text="TT-TOB", + description="Region code for Tobago.")) + setattr(cls, "TT-TUP", + PermissibleValue( + text="TT-TUP", + description="Region code for Tunapuna-Piarco.")) + setattr(cls, "TV-FUN", + PermissibleValue( + text="TV-FUN", + description="Region code for Funafuti.")) + setattr(cls, "TV-NIT", + PermissibleValue( + text="TV-NIT", + description="Region code for Niutao.")) + setattr(cls, "TV-NKF", + PermissibleValue( + text="TV-NKF", + description="Region code for Nukufetau.")) + setattr(cls, "TV-NKL", + PermissibleValue( + text="TV-NKL", + description="Region code for Nukulaelae.")) + setattr(cls, "TV-NMA", + PermissibleValue( + text="TV-NMA", + description="Region code for Nanumea.")) + setattr(cls, "TV-NMG", + PermissibleValue( + text="TV-NMG", + description="Region code for Nanumaga.")) + setattr(cls, "TV-NUI", + PermissibleValue( + text="TV-NUI", + description="Region code for Nui.")) + setattr(cls, "TV-VAI", + PermissibleValue( + text="TV-VAI", + description="Region code for Vaitupu.")) + setattr(cls, "TW-CHA", + PermissibleValue( + text="TW-CHA", + description="Region code for Changhua.")) + setattr(cls, "TW-CYI", + PermissibleValue( + text="TW-CYI", + description="Region code for Chiayi.")) + setattr(cls, "TW-CYQ", + PermissibleValue( + text="TW-CYQ", + description="Region code for Chiayi.")) + setattr(cls, "TW-HSQ", + PermissibleValue( + text="TW-HSQ", + description="Region code for Hsinchu.")) + setattr(cls, "TW-HSZ", + PermissibleValue( + text="TW-HSZ", + description="Region code for Hsinchu.")) + setattr(cls, "TW-HUA", + PermissibleValue( + text="TW-HUA", + description="Region code for Hualien.")) + setattr(cls, "TW-ILA", + PermissibleValue( + text="TW-ILA", + description="Region code for Yilan.")) + setattr(cls, "TW-KEE", + PermissibleValue( + text="TW-KEE", + description="Region code for Keelung.")) + setattr(cls, "TW-KHH", + PermissibleValue( + text="TW-KHH", + description="Region code for Kaohsiung.")) + setattr(cls, "TW-KIN", + PermissibleValue( + text="TW-KIN", + description="Region code for Kinmen.")) + setattr(cls, "TW-LIE", + PermissibleValue( + text="TW-LIE", + description="Region code for Lienchiang.")) + setattr(cls, "TW-MIA", + PermissibleValue( + text="TW-MIA", + description="Region code for Miaoli.")) + setattr(cls, "TW-NAN", + PermissibleValue( + text="TW-NAN", + description="Region code for Nantou.")) + setattr(cls, "TW-NWT", + PermissibleValue( + text="TW-NWT", + description="Region code for New Taipei.")) + setattr(cls, "TW-PEN", + PermissibleValue( + text="TW-PEN", + description="Region code for Penghu.")) + setattr(cls, "TW-PIF", + PermissibleValue( + text="TW-PIF", + description="Region code for Pingtung.")) + setattr(cls, "TW-TAO", + PermissibleValue( + text="TW-TAO", + description="Region code for Taoyuan.")) + setattr(cls, "TW-TNN", + PermissibleValue( + text="TW-TNN", + description="Region code for Tainan.")) + setattr(cls, "TW-TPE", + PermissibleValue( + text="TW-TPE", + description="Region code for Taipei.")) + setattr(cls, "TW-TTT", + PermissibleValue( + text="TW-TTT", + description="Region code for Taitung.")) + setattr(cls, "TW-TXG", + PermissibleValue( + text="TW-TXG", + description="Region code for Taichung.")) + setattr(cls, "TW-YUN", + PermissibleValue( + text="TW-YUN", + description="Region code for Yunlin.")) + setattr(cls, "TZ-01", + PermissibleValue( + text="TZ-01", + description="Region code for Arusha.")) + setattr(cls, "TZ-02", + PermissibleValue( + text="TZ-02", + description="Region code for Dar es Salaam.")) + setattr(cls, "TZ-03", + PermissibleValue( + text="TZ-03", + description="Region code for Dodoma.")) + setattr(cls, "TZ-04", + PermissibleValue( + text="TZ-04", + description="Region code for Iringa.")) + setattr(cls, "TZ-05", + PermissibleValue( + text="TZ-05", + description="Region code for Kagera.")) + setattr(cls, "TZ-06", + PermissibleValue( + text="TZ-06", + description="Region code for Pemba North.")) + setattr(cls, "TZ-07", + PermissibleValue( + text="TZ-07", + description="Region code for Zanzibar North.")) + setattr(cls, "TZ-08", + PermissibleValue( + text="TZ-08", + description="Region code for Kigoma.")) + setattr(cls, "TZ-09", + PermissibleValue( + text="TZ-09", + description="Region code for Kilimanjaro.")) + setattr(cls, "TZ-10", + PermissibleValue( + text="TZ-10", + description="Region code for Pemba South.")) + setattr(cls, "TZ-11", + PermissibleValue( + text="TZ-11", + description="Region code for Zanzibar South.")) + setattr(cls, "TZ-12", + PermissibleValue( + text="TZ-12", + description="Region code for Lindi.")) + setattr(cls, "TZ-13", + PermissibleValue( + text="TZ-13", + description="Region code for Mara.")) + setattr(cls, "TZ-14", + PermissibleValue( + text="TZ-14", + description="Region code for Mbeya.")) + setattr(cls, "TZ-15", + PermissibleValue( + text="TZ-15", + description="Region code for Zanzibar West.")) + setattr(cls, "TZ-16", + PermissibleValue( + text="TZ-16", + description="Region code for Morogoro.")) + setattr(cls, "TZ-17", + PermissibleValue( + text="TZ-17", + description="Region code for Mtwara.")) + setattr(cls, "TZ-18", + PermissibleValue( + text="TZ-18", + description="Region code for Mwanza.")) + setattr(cls, "TZ-19", + PermissibleValue( + text="TZ-19", + description="Region code for Coast.")) + setattr(cls, "TZ-20", + PermissibleValue( + text="TZ-20", + description="Region code for Rukwa.")) + setattr(cls, "TZ-21", + PermissibleValue( + text="TZ-21", + description="Region code for Ruvuma.")) + setattr(cls, "TZ-22", + PermissibleValue( + text="TZ-22", + description="Region code for Shinyanga.")) + setattr(cls, "TZ-23", + PermissibleValue( + text="TZ-23", + description="Region code for Singida.")) + setattr(cls, "TZ-24", + PermissibleValue( + text="TZ-24", + description="Region code for Tabora.")) + setattr(cls, "TZ-25", + PermissibleValue( + text="TZ-25", + description="Region code for Tanga.")) + setattr(cls, "TZ-26", + PermissibleValue( + text="TZ-26", + description="Region code for Manyara.")) + setattr(cls, "TZ-27", + PermissibleValue( + text="TZ-27", + description="Region code for Geita.")) + setattr(cls, "TZ-28", + PermissibleValue( + text="TZ-28", + description="Region code for Katavi.")) + setattr(cls, "TZ-29", + PermissibleValue( + text="TZ-29", + description="Region code for Njombe.")) + setattr(cls, "TZ-30", + PermissibleValue( + text="TZ-30", + description="Region code for Simiyu.")) + setattr(cls, "TZ-31", + PermissibleValue( + text="TZ-31", + description="Region code for Songwe.")) + setattr(cls, "UA-05", + PermissibleValue( + text="UA-05", + description="Region code for Vinnytska oblast.")) + setattr(cls, "UA-07", + PermissibleValue( + text="UA-07", + description="Region code for Volynska oblast.")) + setattr(cls, "UA-09", + PermissibleValue( + text="UA-09", + description="Region code for Luhanska oblast.")) + setattr(cls, "UA-12", + PermissibleValue( + text="UA-12", + description="Region code for Dnipropetrovska oblast.")) + setattr(cls, "UA-14", + PermissibleValue( + text="UA-14", + description="Region code for Donetska oblast.")) + setattr(cls, "UA-18", + PermissibleValue( + text="UA-18", + description="Region code for Zhytomyrska oblast.")) + setattr(cls, "UA-21", + PermissibleValue( + text="UA-21", + description="Region code for Zakarpatska oblast.")) + setattr(cls, "UA-23", + PermissibleValue( + text="UA-23", + description="Region code for Zaporizka oblast.")) + setattr(cls, "UA-26", + PermissibleValue( + text="UA-26", + description="Region code for Ivano-Frankivska oblast.")) + setattr(cls, "UA-30", + PermissibleValue( + text="UA-30", + description="Region code for Kyiv.")) + setattr(cls, "UA-32", + PermissibleValue( + text="UA-32", + description="Region code for Kyivska oblast.")) + setattr(cls, "UA-35", + PermissibleValue( + text="UA-35", + description="Region code for Kirovohradska oblast.")) + setattr(cls, "UA-40", + PermissibleValue( + text="UA-40", + description="Region code for Sevastopol.")) + setattr(cls, "UA-43", + PermissibleValue( + text="UA-43", + description="Region code for Avtonomna Respublika Krym.")) + setattr(cls, "UA-46", + PermissibleValue( + text="UA-46", + description="Region code for Lvivska oblast.")) + setattr(cls, "UA-48", + PermissibleValue( + text="UA-48", + description="Region code for Mykolaivska oblast.")) + setattr(cls, "UA-51", + PermissibleValue( + text="UA-51", + description="Region code for Odeska oblast.")) + setattr(cls, "UA-53", + PermissibleValue( + text="UA-53", + description="Region code for Poltavska oblast.")) + setattr(cls, "UA-56", + PermissibleValue( + text="UA-56", + description="Region code for Rivnenska oblast.")) + setattr(cls, "UA-59", + PermissibleValue( + text="UA-59", + description="Region code for Sumska oblast.")) + setattr(cls, "UA-61", + PermissibleValue( + text="UA-61", + description="Region code for Ternopilska oblast.")) + setattr(cls, "UA-63", + PermissibleValue( + text="UA-63", + description="Region code for Kharkivska oblast.")) + setattr(cls, "UA-65", + PermissibleValue( + text="UA-65", + description="Region code for Khersonska oblast.")) + setattr(cls, "UA-68", + PermissibleValue( + text="UA-68", + description="Region code for Khmelnytska oblast.")) + setattr(cls, "UA-71", + PermissibleValue( + text="UA-71", + description="Region code for Cherkaska oblast.")) + setattr(cls, "UA-74", + PermissibleValue( + text="UA-74", + description="Region code for Chernihivska oblast.")) + setattr(cls, "UA-77", + PermissibleValue( + text="UA-77", + description="Region code for Chernivetska oblast.")) + setattr(cls, "UG-101", + PermissibleValue( + text="UG-101", + description="Region code for Kalangala.")) + setattr(cls, "UG-102", + PermissibleValue( + text="UG-102", + description="Region code for Kampala.")) + setattr(cls, "UG-103", + PermissibleValue( + text="UG-103", + description="Region code for Kiboga.")) + setattr(cls, "UG-104", + PermissibleValue( + text="UG-104", + description="Region code for Luwero.")) + setattr(cls, "UG-105", + PermissibleValue( + text="UG-105", + description="Region code for Masaka.")) + setattr(cls, "UG-106", + PermissibleValue( + text="UG-106", + description="Region code for Mpigi.")) + setattr(cls, "UG-107", + PermissibleValue( + text="UG-107", + description="Region code for Mubende.")) + setattr(cls, "UG-108", + PermissibleValue( + text="UG-108", + description="Region code for Mukono.")) + setattr(cls, "UG-109", + PermissibleValue( + text="UG-109", + description="Region code for Nakasongola.")) + setattr(cls, "UG-110", + PermissibleValue( + text="UG-110", + description="Region code for Rakai.")) + setattr(cls, "UG-111", + PermissibleValue( + text="UG-111", + description="Region code for Sembabule.")) + setattr(cls, "UG-112", + PermissibleValue( + text="UG-112", + description="Region code for Kayunga.")) + setattr(cls, "UG-113", + PermissibleValue( + text="UG-113", + description="Region code for Wakiso.")) + setattr(cls, "UG-114", + PermissibleValue( + text="UG-114", + description="Region code for Lyantonde.")) + setattr(cls, "UG-115", + PermissibleValue( + text="UG-115", + description="Region code for Mityana.")) + setattr(cls, "UG-116", + PermissibleValue( + text="UG-116", + description="Region code for Nakaseke.")) + setattr(cls, "UG-117", + PermissibleValue( + text="UG-117", + description="Region code for Buikwe.")) + setattr(cls, "UG-118", + PermissibleValue( + text="UG-118", + description="Region code for Bukomansibi.")) + setattr(cls, "UG-119", + PermissibleValue( + text="UG-119", + description="Region code for Butambala.")) + setattr(cls, "UG-120", + PermissibleValue( + text="UG-120", + description="Region code for Buvuma.")) + setattr(cls, "UG-121", + PermissibleValue( + text="UG-121", + description="Region code for Gomba.")) + setattr(cls, "UG-122", + PermissibleValue( + text="UG-122", + description="Region code for Kalungu.")) + setattr(cls, "UG-123", + PermissibleValue( + text="UG-123", + description="Region code for Kyankwanzi.")) + setattr(cls, "UG-124", + PermissibleValue( + text="UG-124", + description="Region code for Lwengo.")) + setattr(cls, "UG-125", + PermissibleValue( + text="UG-125", + description="Region code for Kyotera.")) + setattr(cls, "UG-126", + PermissibleValue( + text="UG-126", + description="Region code for Kasanda.")) + setattr(cls, "UG-201", + PermissibleValue( + text="UG-201", + description="Region code for Bugiri.")) + setattr(cls, "UG-202", + PermissibleValue( + text="UG-202", + description="Region code for Busia.")) + setattr(cls, "UG-203", + PermissibleValue( + text="UG-203", + description="Region code for Iganga.")) + setattr(cls, "UG-204", + PermissibleValue( + text="UG-204", + description="Region code for Jinja.")) + setattr(cls, "UG-205", + PermissibleValue( + text="UG-205", + description="Region code for Kamuli.")) + setattr(cls, "UG-206", + PermissibleValue( + text="UG-206", + description="Region code for Kapchorwa.")) + setattr(cls, "UG-207", + PermissibleValue( + text="UG-207", + description="Region code for Katakwi.")) + setattr(cls, "UG-208", + PermissibleValue( + text="UG-208", + description="Region code for Kumi.")) + setattr(cls, "UG-209", + PermissibleValue( + text="UG-209", + description="Region code for Mbale.")) + setattr(cls, "UG-210", + PermissibleValue( + text="UG-210", + description="Region code for Pallisa.")) + setattr(cls, "UG-211", + PermissibleValue( + text="UG-211", + description="Region code for Soroti.")) + setattr(cls, "UG-212", + PermissibleValue( + text="UG-212", + description="Region code for Tororo.")) + setattr(cls, "UG-213", + PermissibleValue( + text="UG-213", + description="Region code for Kaberamaido.")) + setattr(cls, "UG-214", + PermissibleValue( + text="UG-214", + description="Region code for Mayuge.")) + setattr(cls, "UG-215", + PermissibleValue( + text="UG-215", + description="Region code for Sironko.")) + setattr(cls, "UG-216", + PermissibleValue( + text="UG-216", + description="Region code for Amuria.")) + setattr(cls, "UG-217", + PermissibleValue( + text="UG-217", + description="Region code for Budaka.")) + setattr(cls, "UG-218", + PermissibleValue( + text="UG-218", + description="Region code for Bududa.")) + setattr(cls, "UG-219", + PermissibleValue( + text="UG-219", + description="Region code for Bukedea.")) + setattr(cls, "UG-220", + PermissibleValue( + text="UG-220", + description="Region code for Bukwo.")) + setattr(cls, "UG-221", + PermissibleValue( + text="UG-221", + description="Region code for Butaleja.")) + setattr(cls, "UG-222", + PermissibleValue( + text="UG-222", + description="Region code for Kaliro.")) + setattr(cls, "UG-223", + PermissibleValue( + text="UG-223", + description="Region code for Manafwa.")) + setattr(cls, "UG-224", + PermissibleValue( + text="UG-224", + description="Region code for Namutumba.")) + setattr(cls, "UG-225", + PermissibleValue( + text="UG-225", + description="Region code for Bulambuli.")) + setattr(cls, "UG-226", + PermissibleValue( + text="UG-226", + description="Region code for Buyende.")) + setattr(cls, "UG-227", + PermissibleValue( + text="UG-227", + description="Region code for Kibuku.")) + setattr(cls, "UG-228", + PermissibleValue( + text="UG-228", + description="Region code for Kween.")) + setattr(cls, "UG-229", + PermissibleValue( + text="UG-229", + description="Region code for Luuka.")) + setattr(cls, "UG-230", + PermissibleValue( + text="UG-230", + description="Region code for Namayingo.")) + setattr(cls, "UG-231", + PermissibleValue( + text="UG-231", + description="Region code for Ngora.")) + setattr(cls, "UG-232", + PermissibleValue( + text="UG-232", + description="Region code for Serere.")) + setattr(cls, "UG-233", + PermissibleValue( + text="UG-233", + description="Region code for Butebo.")) + setattr(cls, "UG-234", + PermissibleValue( + text="UG-234", + description="Region code for Namisindwa.")) + setattr(cls, "UG-235", + PermissibleValue( + text="UG-235", + description="Region code for Bugweri.")) + setattr(cls, "UG-236", + PermissibleValue( + text="UG-236", + description="Region code for Kapelebyong.")) + setattr(cls, "UG-237", + PermissibleValue( + text="UG-237", + description="Region code for Kalaki.")) + setattr(cls, "UG-301", + PermissibleValue( + text="UG-301", + description="Region code for Adjumani.")) + setattr(cls, "UG-302", + PermissibleValue( + text="UG-302", + description="Region code for Apac.")) + setattr(cls, "UG-303", + PermissibleValue( + text="UG-303", + description="Region code for Arua.")) + setattr(cls, "UG-304", + PermissibleValue( + text="UG-304", + description="Region code for Gulu.")) + setattr(cls, "UG-305", + PermissibleValue( + text="UG-305", + description="Region code for Kitgum.")) + setattr(cls, "UG-306", + PermissibleValue( + text="UG-306", + description="Region code for Kotido.")) + setattr(cls, "UG-307", + PermissibleValue( + text="UG-307", + description="Region code for Lira.")) + setattr(cls, "UG-308", PermissibleValue( - text="760", - description="Numeric code for Syrian Arab Republic.")) - setattr(cls, "26", + text="UG-308", + description="Region code for Moroto.")) + setattr(cls, "UG-309", PermissibleValue( - text="26", - description="Numeric code for Argentina.")) - setattr(cls, "41", + text="UG-309", + description="Region code for Moyo.")) + setattr(cls, "UG-310", PermissibleValue( - text="41", - description="Numeric code for Armenia.")) - setattr(cls, "231", + text="UG-310", + description="Region code for Nebbi.")) + setattr(cls, "UG-311", PermissibleValue( - text="231", - description="Numeric code for Ethiopia.")) - setattr(cls, "30", + text="UG-311", + description="Region code for Nakapiripirit.")) + setattr(cls, "UG-312", PermissibleValue( - text="30", - description="Numeric code for Australia.")) - setattr(cls, "36", + text="UG-312", + description="Region code for Pader.")) + setattr(cls, "UG-313", PermissibleValue( - text="36", - description="Numeric code for Bahamas (the).")) - setattr(cls, "048", + text="UG-313", + description="Region code for Yumbe.")) + setattr(cls, "UG-314", PermissibleValue( - text="048", - description="Numeric code for Bahrain.")) - setattr(cls, "40", + text="UG-314", + description="Region code for Abim.")) + setattr(cls, "UG-315", PermissibleValue( - text="40", - description="Numeric code for Bangladesh.")) - setattr(cls, "42", + text="UG-315", + description="Region code for Amolatar.")) + setattr(cls, "UG-316", PermissibleValue( - text="42", - description="Numeric code for Barbados.")) - setattr(cls, "46", + text="UG-316", + description="Region code for Amuru.")) + setattr(cls, "UG-317", PermissibleValue( - text="46", - description="Numeric code forBelgium.")) - setattr(cls, "084", + text="UG-317", + description="Region code for Dokolo.")) + setattr(cls, "UG-318", PermissibleValue( - text="084", - description="Numeric code for Belize.")) - setattr(cls, "204", + text="UG-318", + description="Region code for Kaabong.")) + setattr(cls, "UG-319", PermissibleValue( - text="204", - description="Numeric code for Benin.")) - setattr(cls, "48", + text="UG-319", + description="Region code for Koboko.")) + setattr(cls, "UG-320", PermissibleValue( - text="48", - description="Numeric code for Bermuda.")) - setattr(cls, "52", + text="UG-320", + description="Region code for Maracha.")) + setattr(cls, "UG-321", PermissibleValue( - text="52", - description="Numeric code for Bhutan.")) - setattr(cls, "58", + text="UG-321", + description="Region code for Oyam.")) + setattr(cls, "UG-322", PermissibleValue( - text="58", - description="Numeric code for Botswana.")) - setattr(cls, "60", + text="UG-322", + description="Region code for Agago.")) + setattr(cls, "UG-323", PermissibleValue( - text="60", - description="Numeric code for Bouvet Island.")) - setattr(cls, "62", + text="UG-323", + description="Region code for Alebtong.")) + setattr(cls, "UG-324", PermissibleValue( - text="62", - description="Numeric code for Brazil.")) - setattr(cls, "092", + text="UG-324", + description="Region code for Amudat.")) + setattr(cls, "UG-325", PermissibleValue( - text="092", - description="Numeric code for Virgin Islands (British).")) - setattr(cls, "086", + text="UG-325", + description="Region code for Kole.")) + setattr(cls, "UG-326", PermissibleValue( - text="086", - description="Numeric code for British Indian Ocean Territory (the).")) - setattr(cls, "854", + text="UG-326", + description="Region code for Lamwo.")) + setattr(cls, "UG-327", PermissibleValue( - text="854", - description="Numeric code for Burkina Faso.")) - setattr(cls, "108", + text="UG-327", + description="Region code for Napak.")) + setattr(cls, "UG-328", PermissibleValue( - text="108", - description="Numeric code for Burundi.")) - setattr(cls, "132", + text="UG-328", + description="Region code for Nwoya.")) + setattr(cls, "UG-329", PermissibleValue( - text="132", - description="Numeric code for Cabo Verde.")) - setattr(cls, "152", + text="UG-329", + description="Region code for Otuke.")) + setattr(cls, "UG-330", PermissibleValue( - text="152", - description="Numeric code for Chile.")) - setattr(cls, "156", + text="UG-330", + description="Region code for Zombo.")) + setattr(cls, "UG-331", PermissibleValue( - text="156", - description="Numeric code for China.")) - setattr(cls, "184", + text="UG-331", + description="Region code for Omoro.")) + setattr(cls, "UG-332", PermissibleValue( - text="184", - description="Numeric code for Cook Islands (the).")) - setattr(cls, "188", + text="UG-332", + description="Region code for Pakwach.")) + setattr(cls, "UG-333", PermissibleValue( - text="188", - description="Numeric code for Costa Rica.")) - setattr(cls, "384", + text="UG-333", + description="Region code for Kwania.")) + setattr(cls, "UG-334", PermissibleValue( - text="384", - description="Numeric code for Cote dIvoire.")) - setattr(cls, "531", + text="UG-334", + description="Region code for Nabilatuk.")) + setattr(cls, "UG-335", PermissibleValue( - text="531", - description="Numeric code for Curacao.")) - setattr(cls, "208", + text="UG-335", + description="Region code for Karenga.")) + setattr(cls, "UG-336", PermissibleValue( - text="208", - description="Numeric code for Denmark.")) - setattr(cls, "180", + text="UG-336", + description="Region code for Madi-Okollo.")) + setattr(cls, "UG-337", PermissibleValue( - text="180", - description="Numeric code for Congo (the Democratic Republic of the).")) - setattr(cls, "408", + text="UG-337", + description="Region code for Obongi.")) + setattr(cls, "UG-401", PermissibleValue( - text="408", - description="Numeric code for Korea (the Democratic Peoples Republic of).")) - setattr(cls, "418", + text="UG-401", + description="Region code for Bundibugyo.")) + setattr(cls, "UG-402", PermissibleValue( - text="418", - description="Numeric code for Lao Peoples Democratic Republic (the).")) - setattr(cls, "276", + text="UG-402", + description="Region code for Bushenyi.")) + setattr(cls, "UG-403", PermissibleValue( - text="276", - description="Numeric code for Germany.")) - setattr(cls, "212", + text="UG-403", + description="Region code for Hoima.")) + setattr(cls, "UG-404", PermissibleValue( - text="212", - description="Numeric code for Dominica.")) - setattr(cls, "214", + text="UG-404", + description="Region code for Kabale.")) + setattr(cls, "UG-405", PermissibleValue( - text="214", - description="Numeric code for Dominican Republic (the).")) - setattr(cls, "262", + text="UG-405", + description="Region code for Kabarole.")) + setattr(cls, "UG-406", PermissibleValue( - text="262", - description="Numeric code for Djibouti.")) - setattr(cls, "218", + text="UG-406", + description="Region code for Kasese.")) + setattr(cls, "UG-407", PermissibleValue( - text="218", - description="Numeric code for Ecuador.")) - setattr(cls, "807", + text="UG-407", + description="Region code for Kibaale.")) + setattr(cls, "UG-408", PermissibleValue( - text="807", - description="Numeric code for Republic of North Macedonia.")) - setattr(cls, "222", + text="UG-408", + description="Region code for Kisoro.")) + setattr(cls, "UG-409", PermissibleValue( - text="222", - description="Numeric code for El Salvador.")) - setattr(cls, "232", + text="UG-409", + description="Region code for Masindi.")) + setattr(cls, "UG-410", PermissibleValue( - text="232", - description="Numeric code for Eritrea.")) - setattr(cls, "233", + text="UG-410", + description="Region code for Mbarara.")) + setattr(cls, "UG-411", PermissibleValue( - text="233", - description="Numeric code for Estonia.")) - setattr(cls, "238", + text="UG-411", + description="Region code for Ntungamo.")) + setattr(cls, "UG-412", PermissibleValue( - text="238", - description="Numeric code for Falkland Islands (the) [Malvinas].")) - setattr(cls, "234", + text="UG-412", + description="Region code for Rukungiri.")) + setattr(cls, "UG-413", PermissibleValue( - text="234", - description="Numeric code for Faroe Islands (the).")) - setattr(cls, "242", + text="UG-413", + description="Region code for Kamwenge.")) + setattr(cls, "UG-414", PermissibleValue( - text="242", - description="Numeric code for Fiji.")) - setattr(cls, "246", + text="UG-414", + description="Region code for Kanungu.")) + setattr(cls, "UG-415", PermissibleValue( - text="246", - description="Numeric code for Finland.")) - setattr(cls, "583", + text="UG-415", + description="Region code for Kyenjojo.")) + setattr(cls, "UG-416", PermissibleValue( - text="583", - description="Numeric code for Micronesia (Federated States of).")) - setattr(cls, "250", + text="UG-416", + description="Region code for Buliisa.")) + setattr(cls, "UG-417", PermissibleValue( - text="250", - description="Numeric code for France.")) - setattr(cls, "260", + text="UG-417", + description="Region code for Ibanda.")) + setattr(cls, "UG-418", PermissibleValue( - text="260", - description="Numeric code for French Southern Territories (the).")) - setattr(cls, "254", + text="UG-418", + description="Region code for Isingiro.")) + setattr(cls, "UG-419", PermissibleValue( - text="254", - description="Numeric code for French Guiana.")) - setattr(cls, "258", + text="UG-419", + description="Region code for Kiruhura.")) + setattr(cls, "UG-420", PermissibleValue( - text="258", - description="Numeric code for French Polynesia.")) - setattr(cls, "266", + text="UG-420", + description="Region code for Buhweju.")) + setattr(cls, "UG-421", PermissibleValue( - text="266", - description="Numeric code for Gabon.")) - setattr(cls, "270", + text="UG-421", + description="Region code for Kiryandongo.")) + setattr(cls, "UG-422", PermissibleValue( - text="270", - description="Numeric code for Gambia (the).")) - setattr(cls, "268", + text="UG-422", + description="Region code for Kyegegwa.")) + setattr(cls, "UG-423", PermissibleValue( - text="268", - description="Numeric code for Georgia.")) - setattr(cls, "288", + text="UG-423", + description="Region code for Mitooma.")) + setattr(cls, "UG-424", PermissibleValue( - text="288", - description="Numeric code for Ghana.")) - setattr(cls, "292", + text="UG-424", + description="Region code for Ntoroko.")) + setattr(cls, "UG-425", PermissibleValue( - text="292", - description="Numeric code for Gibraltar.")) - setattr(cls, "308", + text="UG-425", + description="Region code for Rubirizi.")) + setattr(cls, "UG-426", PermissibleValue( - text="308", - description="Numeric code for Grenada.")) - setattr(cls, "300", + text="UG-426", + description="Region code for Sheema.")) + setattr(cls, "UG-427", PermissibleValue( - text="300", - description="Numeric code for Greece.")) - setattr(cls, "304", + text="UG-427", + description="Region code for Kagadi.")) + setattr(cls, "UG-428", PermissibleValue( - text="304", - description="Numeric code for Greenland.")) - setattr(cls, "312", + text="UG-428", + description="Region code for Kakumiro.")) + setattr(cls, "UG-429", PermissibleValue( - text="312", - description="Numeric code for Guadeloupe.")) - setattr(cls, "316", + text="UG-429", + description="Region code for Rubanda.")) + setattr(cls, "UG-430", PermissibleValue( - text="316", - description="Numeric code for Guam.")) - setattr(cls, "320", + text="UG-430", + description="Region code for Bunyangabu.")) + setattr(cls, "UG-431", PermissibleValue( - text="320", - description="Numeric code for Guatemala.")) - setattr(cls, "831", + text="UG-431", + description="Region code for Rukiga.")) + setattr(cls, "UG-432", PermissibleValue( - text="831", - description="Numeric code for Guernsey.")) - setattr(cls, "324", + text="UG-432", + description="Region code for Kikuube.")) + setattr(cls, "UG-433", PermissibleValue( - text="324", - description="Numeric code for Guinea.")) - setattr(cls, "624", + text="UG-433", + description="Region code for Kazo.")) + setattr(cls, "UG-434", PermissibleValue( - text="624", - description="Numeric code for Guinea-Bissau.")) - setattr(cls, "328", + text="UG-434", + description="Region code for Kitagwenda.")) + setattr(cls, "UG-435", PermissibleValue( - text="328", - description="Numeric code for Guyana.")) - setattr(cls, "332", + text="UG-435", + description="Region code for Rwampara.")) + setattr(cls, "UG-C", PermissibleValue( - text="332", - description="Numeric code for Haiti.")) - setattr(cls, "334", + text="UG-C", + description="Region code for Central.")) + setattr(cls, "UG-E", PermissibleValue( - text="334", - description="Numeric code for Heard Island and McDonald Islands.")) - setattr(cls, "340", + text="UG-E", + description="Region code for Eastern.")) + setattr(cls, "UG-N", PermissibleValue( - text="340", - description="Numeric code for Honduras.")) - setattr(cls, "344", + text="UG-N", + description="Region code for Northern.")) + setattr(cls, "UG-W", PermissibleValue( - text="344", - description="Numeric code for Hong Kong.")) - setattr(cls, "356", + text="UG-W", + description="Region code for Western.")) + setattr(cls, "UM-67", PermissibleValue( - text="356", - description="Numeric code for India.")) - setattr(cls, "360", + text="UM-67", + description="Region code for Johnston Atoll.")) + setattr(cls, "UM-71", PermissibleValue( - text="360", - description="Numeric code for Indonesia.")) - setattr(cls, "833", + text="UM-71", + description="Region code for Midway Islands.")) + setattr(cls, "UM-76", PermissibleValue( - text="833", - description="Numeric code for Isle of Man.")) - setattr(cls, "368", + text="UM-76", + description="Region code for Navassa Island.")) + setattr(cls, "UM-79", PermissibleValue( - text="368", - description="Numeric code for Iraq.")) - setattr(cls, "372", + text="UM-79", + description="Region code for Wake Island.")) + setattr(cls, "UM-81", PermissibleValue( - text="372", - description="Numeric code for Ireland.")) - setattr(cls, "364", + text="UM-81", + description="Region code for Baker Island.")) + setattr(cls, "UM-84", PermissibleValue( - text="364", - description="Numeric code for Iran (Islamic Republic of).")) - setattr(cls, "352", + text="UM-84", + description="Region code for Howland Island.")) + setattr(cls, "UM-86", PermissibleValue( - text="352", - description="Numeric code for Iceland.")) - setattr(cls, "376", + text="UM-86", + description="Region code for Jarvis Island.")) + setattr(cls, "UM-89", PermissibleValue( - text="376", - description="Numeric code for Israel.")) - setattr(cls, "380", + text="UM-89", + description="Region code for Kingman Reef.")) + setattr(cls, "UM-95", PermissibleValue( - text="380", - description="Numeric code for Italy.")) - setattr(cls, "388", + text="UM-95", + description="Region code for Palmyra Atoll.")) + setattr(cls, "US-AK", PermissibleValue( - text="388", - description="Numeric code for Jamaica.")) - setattr(cls, "392", + text="US-AK", + description="Region code for Alaska.")) + setattr(cls, "US-AL", PermissibleValue( - text="392", - description="Numeric code for Japan.")) - setattr(cls, "887", + text="US-AL", + description="Region code for Alabama.")) + setattr(cls, "US-AR", PermissibleValue( - text="887", - description="Numeric code for Yemen.")) - setattr(cls, "832", + text="US-AR", + description="Region code for Arkansas.")) + setattr(cls, "US-AS", PermissibleValue( - text="832", - description="Numeric code for Jersey.")) - setattr(cls, "400", + text="US-AS", + description="Region code for American Samoa (see also separate country code entry under AS).")) + setattr(cls, "US-AZ", PermissibleValue( - text="400", - description="Numeric code for Jordan.")) - setattr(cls, "136", + text="US-AZ", + description="Region code for Arizona.")) + setattr(cls, "US-CA", PermissibleValue( - text="136", - description="Numeric code for Cayman Islands (the).")) - setattr(cls, "116", + text="US-CA", + description="Region code for California.")) + setattr(cls, "US-CO", PermissibleValue( - text="116", - description="Numeric code for Cambodia.")) - setattr(cls, "120", + text="US-CO", + description="Region code for Colorado.")) + setattr(cls, "US-CT", + PermissibleValue( + text="US-CT", + description="Region code for Connecticut.")) + setattr(cls, "US-DC", PermissibleValue( - text="120", - description="Numeric code for Cameroon.")) - setattr(cls, "124", + text="US-DC", + description="Region code for District of Columbia.")) + setattr(cls, "US-DE", PermissibleValue( - text="124", - description="Numeric code for Canada.")) - setattr(cls, "398", + text="US-DE", + description="Region code for Delaware.")) + setattr(cls, "US-FL", PermissibleValue( - text="398", - description="Numeric code for Kazakhstan.")) - setattr(cls, "634", + text="US-FL", + description="Region code for Florida.")) + setattr(cls, "US-GA", PermissibleValue( - text="634", - description="Numeric code for Qatar.")) - setattr(cls, "404", + text="US-GA", + description="Region code for Georgia.")) + setattr(cls, "US-GU", PermissibleValue( - text="404", - description="Numeric code for Kenya.")) - setattr(cls, "417", + text="US-GU", + description="Region code for Guam (see also separate country code entry under GU).")) + setattr(cls, "US-HI", PermissibleValue( - text="417", - description="Numeric code for Kyrgyzstan.")) - setattr(cls, "296", + text="US-HI", + description="Region code for Hawaii.")) + setattr(cls, "US-IA", PermissibleValue( - text="296", - description="Numeric code for Kiribati.")) - setattr(cls, "166", + text="US-IA", + description="Region code for Iowa.")) + setattr(cls, "US-ID", PermissibleValue( - text="166", - description="Numeric code for Cocos (Keeling) Islands (the).")) - setattr(cls, "170", + text="US-ID", + description="Region code for Idaho.")) + setattr(cls, "US-IL", PermissibleValue( - text="170", - description="Numeric code for Colombia.")) - setattr(cls, "174", + text="US-IL", + description="Region code for Illinois.")) + setattr(cls, "US-IN", PermissibleValue( - text="174", - description="Numeric code for Comoros (the).")) - setattr(cls, "178", + text="US-IN", + description="Region code for Indiana.")) + setattr(cls, "US-KS", PermissibleValue( - text="178", - description="Numeric code for Congo (the).")) - setattr(cls, "191", + text="US-KS", + description="Region code for Kansas.")) + setattr(cls, "US-KY", PermissibleValue( - text="191", - description="Numeric code for Croatia.")) - setattr(cls, "192", + text="US-KY", + description="Region code for Kentucky.")) + setattr(cls, "US-LA", PermissibleValue( - text="192", - description="Numeric code for Cuba.")) - setattr(cls, "414", + text="US-LA", + description="Region code for Louisiana.")) + setattr(cls, "US-MA", PermissibleValue( - text="414", - description="Numeric code for Kuwait.")) - setattr(cls, "426", + text="US-MA", + description="Region code for Massachusetts.")) + setattr(cls, "US-MD", PermissibleValue( - text="426", - description="Numeric code for Lesotho.")) - setattr(cls, "428", + text="US-MD", + description="Region code for Maryland.")) + setattr(cls, "US-ME", PermissibleValue( - text="428", - description="Numeric code for Latvia.")) - setattr(cls, "422", + text="US-ME", + description="Region code for Maine.")) + setattr(cls, "US-MI", PermissibleValue( - text="422", - description="Numeric code for Lebanon.")) - setattr(cls, "430", + text="US-MI", + description="Region code for Michigan.")) + setattr(cls, "US-MN", PermissibleValue( - text="430", - description="Numeric code for Liberia.")) - setattr(cls, "434", + text="US-MN", + description="Region code for Minnesota.")) + setattr(cls, "US-MO", PermissibleValue( - text="434", - description="Numeric code for Libya.")) - setattr(cls, "438", + text="US-MO", + description="Region code for Missouri.")) + setattr(cls, "US-MP", PermissibleValue( - text="438", - description="Numeric code for Liechtenstein.")) - setattr(cls, "440", + text="US-MP", + description="""Region code for Northern Mariana Islands (see also separate country code entry under MP).""")) + setattr(cls, "US-MS", PermissibleValue( - text="440", - description="Numeric code for Lithuania.")) - setattr(cls, "442", + text="US-MS", + description="Region code for Mississippi.")) + setattr(cls, "US-MT", PermissibleValue( - text="442", - description="Numeric code for Luxembourg.")) - setattr(cls, "446", + text="US-MT", + description="Region code for Montana.")) + setattr(cls, "US-NC", PermissibleValue( - text="446", - description="Numeric code for Macao.")) - setattr(cls, "450", + text="US-NC", + description="Region code for North Carolina.")) + setattr(cls, "US-ND", PermissibleValue( - text="450", - description="Numeric code for Madagascar.")) - setattr(cls, "454", + text="US-ND", + description="Region code for North Dakota.")) + setattr(cls, "US-NE", PermissibleValue( - text="454", - description="Numeric code for Malawi.")) - setattr(cls, "458", + text="US-NE", + description="Region code for Nebraska.")) + setattr(cls, "US-NH", PermissibleValue( - text="458", - description="Numeric code for Malaysia.")) - setattr(cls, "462", + text="US-NH", + description="Region code for New Hampshire.")) + setattr(cls, "US-NJ", PermissibleValue( - text="462", - description="Numeric code for Maldives.")) - setattr(cls, "466", + text="US-NJ", + description="Region code for New Jersey.")) + setattr(cls, "US-NM", PermissibleValue( - text="466", - description="Numeric code for Mali.")) - setattr(cls, "470", + text="US-NM", + description="Region code for New Mexico.")) + setattr(cls, "US-NV", PermissibleValue( - text="470", - description="Numeric code for Malta .")) - setattr(cls, "580", + text="US-NV", + description="Region code for Nevada.")) + setattr(cls, "US-NY", PermissibleValue( - text="580", - description="Numeric code for Northern Mariana Islands (the).")) - setattr(cls, "504", + text="US-NY", + description="Region code for New York.")) + setattr(cls, "US-OH", PermissibleValue( - text="504", - description="Numeric code for Morocco.")) - setattr(cls, "584", + text="US-OH", + description="Region code for Ohio.")) + setattr(cls, "US-OK", PermissibleValue( - text="584", - description="Numeric code for Marshall Islands (the).")) - setattr(cls, "474", + text="US-OK", + description="Region code for Oklahoma.")) + setattr(cls, "US-OR", PermissibleValue( - text="474", - description="Numeric code for Martinique.")) - setattr(cls, "478", + text="US-OR", + description="Region code for Oregon.")) + setattr(cls, "US-PA", PermissibleValue( - text="478", - description="Numeric code for Mauritania.")) - setattr(cls, "480", + text="US-PA", + description="Region code for Pennsylvania.")) + setattr(cls, "US-PR", PermissibleValue( - text="480", - description="Numeric code for Mauritius.")) - setattr(cls, "175", + text="US-PR", + description="Region code for Puerto Rico (see also separate country code entry under PR).")) + setattr(cls, "US-RI", PermissibleValue( - text="175", - description="Numeric code for Mayotte.")) - setattr(cls, "484", + text="US-RI", + description="Region code for Rhode Island.")) + setattr(cls, "US-SC", PermissibleValue( - text="484", - description="Numeric code for Mexico.")) - setattr(cls, "492", + text="US-SC", + description="Region code for South Carolina.")) + setattr(cls, "US-SD", PermissibleValue( - text="492", - description="Numeric code for Monaco.")) - setattr(cls, "496", + text="US-SD", + description="Region code for South Dakota.")) + setattr(cls, "US-TN", PermissibleValue( - text="496", - description="Numeric code for Mongolia.")) - setattr(cls, "500", + text="US-TN", + description="Region code for Tennessee.")) + setattr(cls, "US-TX", PermissibleValue( - text="500", - description="Numeric code for Montserrat.")) - setattr(cls, "499", + text="US-TX", + description="Region code for Texas.")) + setattr(cls, "US-UM", PermissibleValue( - text="499", - description="Numeric code for Montenegro.")) - setattr(cls, "508", + text="US-UM", + description="""Region code for United States Minor Outlying Islands (see also separate country code entry under UM).""")) + setattr(cls, "US-UT", PermissibleValue( - text="508", - description="Numeric code for Mozambique.")) - setattr(cls, "104", + text="US-UT", + description="Region code for Utah.")) + setattr(cls, "US-VA", PermissibleValue( - text="104", - description="Numeric code for Myanmar.")) - setattr(cls, "516", + text="US-VA", + description="Region code for Virginia.")) + setattr(cls, "US-VI", PermissibleValue( - text="516", - description="Numeric code for Namibia.")) - setattr(cls, "520", + text="US-VI", + description="Region code for Virgin Islands, U.S. (see also separate country code entry under VI).")) + setattr(cls, "US-VT", PermissibleValue( - text="520", - description="Numeric code for Nauru.")) - setattr(cls, "524", + text="US-VT", + description="Region code for Vermont.")) + setattr(cls, "US-WA", PermissibleValue( - text="524", - description="Numeric code for Nepal.")) - setattr(cls, "540", + text="US-WA", + description="Region code for Washington.")) + setattr(cls, "US-WI", PermissibleValue( - text="540", - description="Numeric code for New Caledonia.")) - setattr(cls, "554", + text="US-WI", + description="Region code for Wisconsin.")) + setattr(cls, "US-WV", PermissibleValue( - text="554", - description="Numeric code for New Zealand.")) - setattr(cls, "558", + text="US-WV", + description="Region code for West Virginia.")) + setattr(cls, "US-WY", PermissibleValue( - text="558", - description="Numeric code for Nicaragua.")) - setattr(cls, "528", + text="US-WY", + description="Region code for Wyoming.")) + setattr(cls, "UY-AR", PermissibleValue( - text="528", - description="Numeric code for Netherlands (the).")) - setattr(cls, "562", + text="UY-AR", + description="Region code for Artigas.")) + setattr(cls, "UY-CA", PermissibleValue( - text="562", - description="Numeric code for Niger (the).")) - setattr(cls, "566", + text="UY-CA", + description="Region code for Canelones.")) + setattr(cls, "UY-CL", PermissibleValue( - text="566", - description="Numeric code for Nigeria.")) - setattr(cls, "570", + text="UY-CL", + description="Region code for Cerro Largo.")) + setattr(cls, "UY-CO", PermissibleValue( - text="570", - description="Numeric code for Niue.")) - setattr(cls, "574", + text="UY-CO", + description="Region code for Colonia.")) + setattr(cls, "UY-DU", PermissibleValue( - text="574", - description="Numeric code for Norfolk Island.")) - setattr(cls, "578", + text="UY-DU", + description="Region code for Durazno.")) + setattr(cls, "UY-FD", PermissibleValue( - text="578", - description="Numeric code for Norway.")) - setattr(cls, "512", + text="UY-FD", + description="Region code for Florida.")) + setattr(cls, "UY-FS", PermissibleValue( - text="512", - description="Numeric code for Oman.")) - setattr(cls, "32", + text="UY-FS", + description="Region code for Flores.")) + setattr(cls, "UY-LA", PermissibleValue( - text="32", - description="Numeric code for Austria.")) - setattr(cls, "586", + text="UY-LA", + description="Region code for Lavalleja.")) + setattr(cls, "UY-MA", PermissibleValue( - text="586", - description="Numeric code for Pakistan.")) - setattr(cls, "585", + text="UY-MA", + description="Region code for Maldonado.")) + setattr(cls, "UY-MO", PermissibleValue( - text="585", - description="Numeric code for Palau.")) - setattr(cls, "275", + text="UY-MO", + description="Region code for Montevideo.")) + setattr(cls, "UY-PA", PermissibleValue( - text="275", - description="Numeric code for Palestine, State of.")) - setattr(cls, "591", + text="UY-PA", + description="Region code for Paysandú.")) + setattr(cls, "UY-RN", PermissibleValue( - text="591", - description="Numeric code for Panama.")) - setattr(cls, "598", + text="UY-RN", + description="Region code for Río Negro.")) + setattr(cls, "UY-RO", PermissibleValue( - text="598", - description="Numeric code for Papua New Guinea.")) - setattr(cls, "600", + text="UY-RO", + description="Region code for Rocha.")) + setattr(cls, "UY-RV", PermissibleValue( - text="600", - description="Numeric code for Paraguay.")) - setattr(cls, "604", + text="UY-RV", + description="Region code for Rivera.")) + setattr(cls, "UY-SA", PermissibleValue( - text="604", - description="Numeric code for Peru.")) - setattr(cls, "608", + text="UY-SA", + description="Region code for Salto.")) + setattr(cls, "UY-SJ", PermissibleValue( - text="608", - description="Numeric code for Philippines (the).")) - setattr(cls, "612", + text="UY-SJ", + description="Region code for San José.")) + setattr(cls, "UY-SO", PermissibleValue( - text="612", - description="Numeric code for Pitcairn.")) - setattr(cls, "068", + text="UY-SO", + description="Region code for Soriano.")) + setattr(cls, "UY-TA", PermissibleValue( - text="068", - description="Numeric code for Bolivia (Plurinational State of).")) - setattr(cls, "616", + text="UY-TA", + description="Region code for Tacuarembó.")) + setattr(cls, "UY-TT", PermissibleValue( - text="616", - description="Numeric code for Poland.")) - setattr(cls, "620", + text="UY-TT", + description="Region code for Treinta y Tres.")) + setattr(cls, "UZ-AN", PermissibleValue( - text="620", - description="Numeric code for Portugal.")) - setattr(cls, "630", + text="UZ-AN", + description="Region code for Andijon.")) + setattr(cls, "UZ-BU", PermissibleValue( - text="630", - description="Numeric code for Puerto Rico.")) - setattr(cls, "410", + text="UZ-BU", + description="Region code for Buxoro.")) + setattr(cls, "UZ-FA", PermissibleValue( - text="410", - description="Numeric code for Korea (the Republic of).")) - setattr(cls, "498", + text="UZ-FA", + description="Region code for Farg‘ona.")) + setattr(cls, "UZ-JI", PermissibleValue( - text="498", - description="Numeric code for Moldova (the Republic of).")) - setattr(cls, "638", + text="UZ-JI", + description="Region code for Jizzax.")) + setattr(cls, "UZ-NG", PermissibleValue( - text="638", - description="Numeric code for Reunion.")) - setattr(cls, "646", + text="UZ-NG", + description="Region code for Namangan.")) + setattr(cls, "UZ-NW", PermissibleValue( - text="646", - description="Numeric code for Rwanda.")) - setattr(cls, "642", + text="UZ-NW", + description="Region code for Navoiy.")) + setattr(cls, "UZ-QA", PermissibleValue( - text="642", - description="Numeric code for Romania.")) - setattr(cls, "643", + text="UZ-QA", + description="Region code for Qashqadaryo.")) + setattr(cls, "UZ-QR", PermissibleValue( - text="643", - description="Numeric code for Russian Federation (the).")) - setattr(cls, "090", + text="UZ-QR", + description="Region code for Qoraqalpog‘iston Respublikasi.")) + setattr(cls, "UZ-SA", PermissibleValue( - text="090", - description="Numeric code for Solomon Islands.")) - setattr(cls, "894", + text="UZ-SA", + description="Region code for Samarqand.")) + setattr(cls, "UZ-SI", PermissibleValue( - text="894", - description="Numeric code for Zambia.")) - setattr(cls, "882", + text="UZ-SI", + description="Region code for Sirdaryo.")) + setattr(cls, "UZ-SU", PermissibleValue( - text="882", - description="Numeric code for Samoa.")) - setattr(cls, "674", + text="UZ-SU", + description="Region code for Surxondaryo.")) + setattr(cls, "UZ-TK", PermissibleValue( - text="674", - description="Numeric code for San Marino.")) - setattr(cls, "678", + text="UZ-TK", + description="Region code for Toshkent.")) + setattr(cls, "UZ-TO", PermissibleValue( - text="678", - description="Numeric code for Sao Tome and Principe.")) - setattr(cls, "682", + text="UZ-TO", + description="Region code for Toshkent.")) + setattr(cls, "UZ-XO", PermissibleValue( - text="682", - description="Numeric code for Saudi Arabia.")) - setattr(cls, "752", + text="UZ-XO", + description="Region code for Xorazm.")) + setattr(cls, "VC-01", PermissibleValue( - text="752", - description="Numeric code for Sweden.")) - setattr(cls, "756", + text="VC-01", + description="Region code for Charlotte.")) + setattr(cls, "VC-02", PermissibleValue( - text="756", - description="Numeric code for Switzerland.")) - setattr(cls, "686", + text="VC-02", + description="Region code for Saint Andrew.")) + setattr(cls, "VC-03", PermissibleValue( - text="686", - description="Numeric code for Senegal.")) - setattr(cls, "688", + text="VC-03", + description="Region code for Saint David.")) + setattr(cls, "VC-04", + PermissibleValue( + text="VC-04", + description="Region code for Saint George.")) + setattr(cls, "VC-05", PermissibleValue( - text="688", - description="Numeric code for Serbia.")) - setattr(cls, "690", + text="VC-05", + description="Region code for Saint Patrick.")) + setattr(cls, "VC-06", PermissibleValue( - text="690", - description="Numeric code for Seychelles.")) - setattr(cls, "694", + text="VC-06", + description="Region code for Grenadines.")) + setattr(cls, "VE-A", PermissibleValue( - text="694", - description="Numeric code for Sierra Leone.")) - setattr(cls, "716", + text="VE-A", + description="Region code for Distrito Capital.")) + setattr(cls, "VE-B", PermissibleValue( - text="716", - description="Numeric code for Zimbabwe.")) - setattr(cls, "702", + text="VE-B", + description="Region code for Anzoátegui.")) + setattr(cls, "VE-C", PermissibleValue( - text="702", - description="Numeric code for Singapore.")) - setattr(cls, "703", + text="VE-C", + description="Region code for Apure.")) + setattr(cls, "VE-D", PermissibleValue( - text="703", - description="Numeric code for Slovakia.")) - setattr(cls, "705", + text="VE-D", + description="Region code for Aragua.")) + setattr(cls, "VE-E", PermissibleValue( - text="705", - description="Numeric code for Slovenia.")) - setattr(cls, "706", + text="VE-E", + description="Region code for Barinas.")) + setattr(cls, "VE-F", PermissibleValue( - text="706", - description="Numeric code for Somalia.")) - setattr(cls, "724", + text="VE-F", + description="Region code for Bolívar.")) + setattr(cls, "VE-G", PermissibleValue( - text="724", - description="Numeric code for Spain.")) - setattr(cls, "144", + text="VE-G", + description="Region code for Carabobo.")) + setattr(cls, "VE-H", PermissibleValue( - text="144", - description="Numeric code for Sri Lanka.")) - setattr(cls, "652", + text="VE-H", + description="Region code for Cojedes.")) + setattr(cls, "VE-I", PermissibleValue( - text="652", - description="Numeric code for Saint Barthelemy.")) - setattr(cls, "654", + text="VE-I", + description="Region code for Falcón.")) + setattr(cls, "VE-J", PermissibleValue( - text="654", - description="Numeric code for Saint Helena, Ascension and Tristan da Cunha.")) - setattr(cls, "659", + text="VE-J", + description="Region code for Guárico.")) + setattr(cls, "VE-K", PermissibleValue( - text="659", - description="Numeric code for Saint Kitts and Nevis.")) - setattr(cls, "662", + text="VE-K", + description="Region code for Lara.")) + setattr(cls, "VE-L", PermissibleValue( - text="662", - description="Numeric code for Saint Lucia.")) - setattr(cls, "663", + text="VE-L", + description="Region code for Mérida.")) + setattr(cls, "VE-M", PermissibleValue( - text="663", - description="Numeric code for Saint Martin (French part).")) - setattr(cls, "534", + text="VE-M", + description="Region code for Miranda.")) + setattr(cls, "VE-N", PermissibleValue( - text="534", - description="Numeric code for Sint Maarten (Dutch part).")) - setattr(cls, "666", + text="VE-N", + description="Region code for Monagas.")) + setattr(cls, "VE-O", PermissibleValue( - text="666", - description="Numeric code for Saint Pierre and Miquelon.")) - setattr(cls, "670", + text="VE-O", + description="Region code for Nueva Esparta.")) + setattr(cls, "VE-P", PermissibleValue( - text="670", - description="Numeric code for Saint Vincent and the Grenadines.")) - setattr(cls, "710", + text="VE-P", + description="Region code for Portuguesa.")) + setattr(cls, "VE-R", PermissibleValue( - text="710", - description="Numeric code for South Africa.")) - setattr(cls, "729", + text="VE-R", + description="Region code for Sucre.")) + setattr(cls, "VE-S", PermissibleValue( - text="729", - description="Numeric code forSudan (the).")) - setattr(cls, "239", + text="VE-S", + description="Region code for Táchira.")) + setattr(cls, "VE-T", PermissibleValue( - text="239", - description="Numeric code for South Georgia and the South Sandwich Islands.")) - setattr(cls, "728", + text="VE-T", + description="Region code for Trujillo.")) + setattr(cls, "VE-U", PermissibleValue( - text="728", - description="Numeric code for South Sudan.")) - setattr(cls, "740", + text="VE-U", + description="Region code for Yaracuy.")) + setattr(cls, "VE-V", PermissibleValue( - text="740", - description="Numeric code for Suriname.")) - setattr(cls, "744", + text="VE-V", + description="Region code for Zulia.")) + setattr(cls, "VE-W", PermissibleValue( - text="744", - description="Numeric code for Svalbard and Jan Mayen.")) - setattr(cls, "748", + text="VE-W", + description="Region code for Dependencias Federales.")) + setattr(cls, "VE-X", PermissibleValue( - text="748", - description="Numeric code for Eswatini.")) - setattr(cls, "762", + text="VE-X", + description="Region code for La Guaira.")) + setattr(cls, "VE-Y", PermissibleValue( - text="762", - description="Numeric code for Tajikistan.")) - setattr(cls, "158", + text="VE-Y", + description="Region code for Delta Amacuro.")) + setattr(cls, "VE-Z", PermissibleValue( - text="158", - description="Numeric code for Taiwan (Province of China).")) - setattr(cls, "764", + text="VE-Z", + description="Region code for Amazonas.")) + setattr(cls, "VN-01", PermissibleValue( - text="764", - description="Numeric code for Thailand.")) - setattr(cls, "626", + text="VN-01", + description="Region code for Lai Châu.")) + setattr(cls, "VN-02", PermissibleValue( - text="626", - description="Numeric code for Timor-Leste.")) - setattr(cls, "768", + text="VN-02", + description="Region code for Lào Cai.")) + setattr(cls, "VN-03", PermissibleValue( - text="768", - description="Numeric code for Togo.")) - setattr(cls, "772", + text="VN-03", + description="Region code for Hà Giang.")) + setattr(cls, "VN-04", PermissibleValue( - text="772", - description="Numeric code for Tokelau.")) - setattr(cls, "776", + text="VN-04", + description="Region code for Cao Bằng.")) + setattr(cls, "VN-05", PermissibleValue( - text="776", - description="Numeric code for Tonga.")) - setattr(cls, "780", + text="VN-05", + description="Region code for Sơn La.")) + setattr(cls, "VN-06", PermissibleValue( - text="780", - description="Numeric code for Trinidad and Tobago.")) - setattr(cls, "148", + text="VN-06", + description="Region code for Yên Bái.")) + setattr(cls, "VN-07", PermissibleValue( - text="148", - description="Numeric code for Chad.")) - setattr(cls, "203", + text="VN-07", + description="Region code for Tuyên Quang.")) + setattr(cls, "VN-09", PermissibleValue( - text="203", - description="Numeric code for Czechia.")) - setattr(cls, "788", + text="VN-09", + description="Region code for Lạng Sơn.")) + setattr(cls, "VN-13", PermissibleValue( - text="788", - description="Numeric code for Tunisia.")) - setattr(cls, "792", + text="VN-13", + description="Region code for Quảng Ninh.")) + setattr(cls, "VN-14", PermissibleValue( - text="792", - description="Numeric code for Turkey.")) - setattr(cls, "795", + text="VN-14", + description="Region code for Hòa Bình.")) + setattr(cls, "VN-18", PermissibleValue( - text="795", - description="Numeric code for Turkmenistan.")) - setattr(cls, "796", + text="VN-18", + description="Region code for Ninh Bình.")) + setattr(cls, "VN-20", PermissibleValue( - text="796", - description="Numeric code for Turks and Caicos Islands (the).")) - setattr(cls, "798", + text="VN-20", + description="Region code for Thái Bình.")) + setattr(cls, "VN-21", PermissibleValue( - text="798", - description="Numeric code for Tuvalu.")) - setattr(cls, "800", + text="VN-21", + description="Region code for Thanh Hóa.")) + setattr(cls, "VN-22", PermissibleValue( - text="800", - description="Numeric code for Uganda.")) - setattr(cls, "804", + text="VN-22", + description="Region code for Nghệ An.")) + setattr(cls, "VN-23", PermissibleValue( - text="804", - description="Numeric code for Ukraine.")) - setattr(cls, "348", + text="VN-23", + description="Region code for Hà Tĩnh.")) + setattr(cls, "VN-24", PermissibleValue( - text="348", - description="Numeric code for Hungary.")) - setattr(cls, "858", + text="VN-24", + description="Region code for Quảng Bình.")) + setattr(cls, "VN-25", PermissibleValue( - text="858", - description="Numeric code for Uruguay.")) - setattr(cls, "860", + text="VN-25", + description="Region code for Quảng Trị.")) + setattr(cls, "VN-26", PermissibleValue( - text="860", - description="Numeric code for Uzbekistan.")) - setattr(cls, "548", + text="VN-26", + description="Region code for Thừa Thiên-Huế.")) + setattr(cls, "VN-27", PermissibleValue( - text="548", - description="Numeric code for Vanuatu.")) - setattr(cls, "336", + text="VN-27", + description="Region code for Quảng Nam.")) + setattr(cls, "VN-28", PermissibleValue( - text="336", - description="Numeric code for Holy See (the).")) - setattr(cls, "784", + text="VN-28", + description="Region code for Kon Tum.")) + setattr(cls, "VN-29", PermissibleValue( - text="784", - description="Numeric code for United Arab Emirates (the).")) - setattr(cls, "834", + text="VN-29", + description="Region code for Quảng Ngãi.")) + setattr(cls, "VN-30", PermissibleValue( - text="834", - description="Numeric code for Tanzania, United Republic of.")) - setattr(cls, "840", + text="VN-30", + description="Region code for Gia Lai.")) + setattr(cls, "VN-31", PermissibleValue( - text="840", - description="Numeric code for United States of America (the).")) - setattr(cls, "826", + text="VN-31", + description="Region code for Bình Định.")) + setattr(cls, "VN-32", PermissibleValue( - text="826", - description="Numeric code for United Kingdom of Great Britain and Northern Ireland (the).")) - setattr(cls, "704", + text="VN-32", + description="Region code for Phú Yên.")) + setattr(cls, "VN-33", PermissibleValue( - text="704", - description="Numeric code for Viet Nam.")) - setattr(cls, "876", + text="VN-33", + description="Region code for Đắk Lắk.")) + setattr(cls, "VN-34", PermissibleValue( - text="876", - description="Numeric code for Wallis and Futuna.")) - setattr(cls, "162", + text="VN-34", + description="Region code for Khánh Hòa.")) + setattr(cls, "VN-35", PermissibleValue( - text="162", - description="Numeric code for Christmas Island.")) - setattr(cls, "112", + text="VN-35", + description="Region code for Lâm Đồng.")) + setattr(cls, "VN-36", PermissibleValue( - text="112", - description="Numeric code for Belarus.")) - setattr(cls, "732", + text="VN-36", + description="Region code for Ninh Thuận.")) + setattr(cls, "VN-37", PermissibleValue( - text="732", - description="Numeric code for Western Sahara.")) - setattr(cls, "140", + text="VN-37", + description="Region code for Tây Ninh.")) + setattr(cls, "VN-39", PermissibleValue( - text="140", - description="Numeric code for Central African Republic (the).")) - setattr(cls, "196", + text="VN-39", + description="Region code for Đồng Nai.")) + setattr(cls, "VN-40", PermissibleValue( - text="196", - description="Numeric code for Cyprus.")) - -class Architectures(EnumDefinitionImpl): - - Other = PermissibleValue( - text="Other", - description="CPU architecture not specified above.") - - _defn = EnumDefinition( - name="Architectures", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "x86-32", + text="VN-40", + description="Region code for Bình Thuận.")) + setattr(cls, "VN-41", PermissibleValue( - text="x86-32", - description="32 bit version of x86 architecture.")) - setattr(cls, "x86-64", + text="VN-41", + description="Region code for Long An.")) + setattr(cls, "VN-43", PermissibleValue( - text="x86-64", - description="64 bit version of x86 architecture.")) - setattr(cls, "AArch-32", + text="VN-43", + description="Region code for Bà Rịa - Vũng Tàu.")) + setattr(cls, "VN-44", PermissibleValue( - text="AArch-32", - description="32-bit version of ARM architecture.")) - setattr(cls, "AArch-64", + text="VN-44", + description="Region code for An Giang.")) + setattr(cls, "VN-45", PermissibleValue( - text="AArch-64", - description="64-bit version of ARM architecture.")) - setattr(cls, "RISC-V", + text="VN-45", + description="Region code for Đồng Tháp.")) + setattr(cls, "VN-46", PermissibleValue( - text="RISC-V", - description="Architecture based on open standard instruction set (ISA).")) - -class EncryptionAlgorithm(EnumDefinitionImpl): - - RSA = PermissibleValue( - text="RSA", - description="""Algorithm for encryption based on public key cryptography (asymmetric cryptography), which uses two keys (public and private) for encoding and sending messages and data.""") - AES = PermissibleValue( - text="AES", - description="""(Advanced Encryption Standard) Algorithm for encryption based on symmetric cryptography (secret key cryptography) that works over group of bits of fixed length (blocks).""") - Blowfish = PermissibleValue( - text="Blowfish", - description="""Symmetric-key block cipher algorithm for encryption that includes advanced functionalities aimed to improve DES algorithm.""") - Twofish = PermissibleValue( - text="Twofish", - description="Evolution of the Symmetric-key block cipher Blowfish algorithm.") - SDA = PermissibleValue( - text="SDA", - description="""(Static Data Authentication) is a digital signature scheme that works with asymmetric cryptography.""") - other = PermissibleValue( - text="other", - description="Algorithm for encryption not further described.") - - _defn = EnumDefinition( - name="EncryptionAlgorithm", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "3DES", + text="VN-46", + description="Region code for Tiền Giang.")) + setattr(cls, "VN-47", PermissibleValue( - text="3DES", - description="""(Triple Data Encryption Algorithm) Symmetric-key block cipher algorithm for encryption, which applies three times the DES (Data Encryption Standard) algorithm to each single data block.""")) - -class ChecksumAlgorithm(EnumDefinitionImpl): - - md5 = PermissibleValue( - text="md5", - description="""(Message Digest Method 5) Algorithm that generates a 128-bit digest, represented as 32-digit hexadecimal numbers, regardless the length of the input string.""") - blake2 = PermissibleValue( - text="blake2", - description="""Improved version of the sha-3 algorithm Blake, optimized for 64-bit platforms, that generates digests of size between 1 and 64 bytes (Blake2b) or up to 32 bytes (Blake2s).""") - blake3 = PermissibleValue( - text="blake3", - description="""Evolution of Bao and Blake2, although in contrast to these, doesn't offer different variants depending on the architectures, but just a single algorithm.""") - other = PermissibleValue( - text="other", - description="Algorithm to calculate checksum not further described.") - - _defn = EnumDefinition( - name="ChecksumAlgorithm", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "sha-1", + text="VN-47", + description="Region code for Kiến Giang.")) + setattr(cls, "VN-49", + PermissibleValue( + text="VN-49", + description="Region code for Vĩnh Long.")) + setattr(cls, "VN-50", PermissibleValue( - text="sha-1", - description="""(Secure Hash Algorithm 1) Algorithm that generates a 160-bit digest, typically represented as 40-digit hexadecimal numbers, regardless the length of the input string.""")) - setattr(cls, "sha-256", + text="VN-50", + description="Region code for Bến Tre.")) + setattr(cls, "VN-51", PermissibleValue( - text="sha-256", - description="""Cryptographic algorithm that produces a fixed-length, 256-bit (32-byte) hash value. The input text should be less than 264 bits length. The algorithm is irreversible by design.""")) - setattr(cls, "sha-384", + text="VN-51", + description="Region code for Trà Vinh.")) + setattr(cls, "VN-52", PermissibleValue( - text="sha-384", - description="""This variant converts text of any length into a fixed-size string. Each output produces a hash of 384 bits.""")) - setattr(cls, "sha-512", + text="VN-52", + description="Region code for Sóc Trăng.")) + setattr(cls, "VN-53", PermissibleValue( - text="sha-512", - description="""This variant converts text of any length into a fixed-size string. Each output produces a hash of 512 bits (64 bytes).""")) - setattr(cls, "sha-3", + text="VN-53", + description="Region code for Bắc Kạn.")) + setattr(cls, "VN-54", PermissibleValue( - text="sha-3", - description="""Advanced version of the sha function, based on a sponge function approach, that generates an output bit stream of a desired length (56, 64, 96 or 128-digit hexadecimal numbers) depending of the sha-3 function version used.""")) - setattr(cls, "ripemd-160", + text="VN-54", + description="Region code for Bắc Giang.")) + setattr(cls, "VN-55", PermissibleValue( - text="ripemd-160", - description="""RIPEMD-160 is a hash function from the RIPEMD (RIPE Message Digest) family that generates 160-bit hashes represented as 40-digit hexadecimal numbers.""")) - -class KeyManagement(EnumDefinitionImpl): - - BYOK = PermissibleValue( - text="BYOK", - description="bring-your-own-key: Keys created by user and stored in key manager of cloud") - HYOK = PermissibleValue( - text="HYOK", - description="hold-your-own-key Key created by user and kept by user") - managed = PermissibleValue( - text="managed", - description="managed: Keys are created by and stored in key manager of cloud.") - - _defn = EnumDefinition( - name="KeyManagement", - ) - -class SignatureAlgorithm(EnumDefinitionImpl): - - DSA = PermissibleValue( - text="DSA", - description="""DSA (Digital Signature Algorithm) is an asymmetric algorithm for signing information proposed by the NIST (National Institute of Standards and Technology).""") - KCDSA = PermissibleValue( - text="KCDSA", - description="""(Korean Certificate-based Digital Signature Algorithm), created by the Korea Internet & Security Agency (KISA), is similar to the DSA algorithm and can produce and output from 128 to 256 bits, in 32-bit increments.""") - Schnorr = PermissibleValue( - text="Schnorr", - description="""Similar to ECDSA scheme was described by Claus Schnorr, is a well-known algorithm due to its simplicity and efficiency that generates short signatures.""") - ECDSA = PermissibleValue( - text="ECDSA", - description="""ECDSA (Elliptic Curve Digital Signature Algorithm) is an improved variant of the DSA algorithm which uses keys derived from elliptic curve cryptography.""") - ECKDSA = PermissibleValue( - text="ECKDSA", - description="Elliptic Curve variant of the KCDSA algorithm.") - ECGDSA = PermissibleValue( - text="ECGDSA", - description="(Elliptic Curve German Digital Signature Algorithm), variant of the ECDSA algorithm.") - other = PermissibleValue( - text="other", - description="Algorithm for digital signatures not further described.") - - _defn = EnumDefinition( - name="SignatureAlgorithm", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "RSA-Signature", + text="VN-55", + description="Region code for Bạc Liêu.")) + setattr(cls, "VN-56", PermissibleValue( - text="RSA-Signature", - description="""RSA is a cryptographic system based on public key that can be used both for signing and encryption purposes.""")) - setattr(cls, "EC Schnorr", + text="VN-56", + description="Region code for Bắc Ninh.")) + setattr(cls, "VN-57", PermissibleValue( - text="EC Schnorr", - description="Elliptic Curve Based Schnorr signatura algorithm.")) - -class DiskType(EnumDefinitionImpl): - - other = PermissibleValue( - text="other", - description="Storage device no further described.") - - _defn = EnumDefinition( - name="DiskType", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "local HDD", + text="VN-57", + description="Region code for Bình Dương.")) + setattr(cls, "VN-58", PermissibleValue( - text="local HDD", - description="""A hard disk drive is a storage device that uses an electro-mechanical system to store and retrieve digital data.""")) - setattr(cls, "local SSD", + text="VN-58", + description="Region code for Bình Phước.")) + setattr(cls, "VN-59", PermissibleValue( - text="local SSD", - description="""A SDD hard disk is a storage device that relies on flash memory technology, integrated circuits and solid-state electronics to store data.""")) - setattr(cls, "magnetic hard drive", + text="VN-59", + description="Region code for Cà Mau.")) + setattr(cls, "VN-61", PermissibleValue( - text="magnetic hard drive", - description="""Storage device that uses rotating magnetic disks (platters) to read and write data into the hard drive.""")) - setattr(cls, "hybrid hard drive", + text="VN-61", + description="Region code for Hải Dương.")) + setattr(cls, "VN-63", PermissibleValue( - text="hybrid hard drive", - description="""Storage device that combines both platters and flash memory, so increases both storage capabilities and storage capacity.""")) - setattr(cls, "shared network storage", + text="VN-63", + description="Region code for Hà Nam.")) + setattr(cls, "VN-66", PermissibleValue( - text="shared network storage", - description="""The information is stored in a central resource that is accessible to multiple users or data systems.""")) - -class DiskBusType(EnumDefinitionImpl): - - SATA = PermissibleValue( - text="SATA", - description="""The SATA (Serial Advanced Technology Attachment) interface connects the storage device to the computer using serial signaling technology.""") - PATA = PermissibleValue( - text="PATA", - description="""Based on parallel signaling technology, the Parallel Advanced Technology Attachment (also known as IDE) interface can be used in old systems, PATA cable is usually flat and features 40-pin connectors on each side.""") - SCSI = PermissibleValue( - text="SCSI", - description="""Small Computer System Interface, uses a system interface that is a standard for connecting peripheral devices such as printers, scanners, and others.""") - SAS = PermissibleValue( - text="SAS", - description="""The Serial Attached SCSI interface provides more performance than SCSI interfaces, and it is usually convenient for environments that require high-performance data transfer.""") - NVMe = PermissibleValue( - text="NVMe", - description="""The Non-volatile Memory Express interface is designed to address tasks that require high-performance computing environments.""") - other = PermissibleValue( - text="other", - description="Disk controller no further described.") - - _defn = EnumDefinition( - name="DiskBusType", - ) - -class GPUInterconnetionTypes(EnumDefinitionImpl): - - NVLink = PermissibleValue(text="NVLink") - RoCE2 = PermissibleValue(text="RoCE2") - other = PermissibleValue(text="other") - none = PermissibleValue(text="none") - - _defn = EnumDefinition( - name="GPUInterconnetionTypes", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "Xe Link", - PermissibleValue(text="Xe Link")) - setattr(cls, "Infinity Fabric", - PermissibleValue(text="Infinity Fabric")) - -class UpdateFrequency(EnumDefinitionImpl): - """ - Possible values for image's update frequency. - """ - yearly = PermissibleValue( - text="yearly", - description="Image will be updated at least once per year.") - quarterly = PermissibleValue( - text="quarterly", - description="Image will be updated at least once per quarter.") - monthly = PermissibleValue( - text="monthly", - description="Image will be updated at least once per month.") - weekly = PermissibleValue( - text="weekly", - description="Image will be updated at least once per week.") - daily = PermissibleValue( - text="daily", - description="Image will be updated at least once per day.") - critical_bug = PermissibleValue( - text="critical_bug", - description="Image will be updated for critical bugs only.") - never = PermissibleValue( - text="never", - description="Image will never be updated.") - - _defn = EnumDefinition( - name="UpdateFrequency", - description="Possible values for image's update frequency.", - ) - -class Validity1(EnumDefinitionImpl): - """ - Possible values for definition of image's validity after upgrading to a new version. - """ - none = PermissibleValue( - text="none", - description="No information are given.") - notice = PermissibleValue( - text="notice", - description="Outdated version of the image will remain valid until a deprecation notice will be published.") - - _defn = EnumDefinition( - name="Validity1", - description="Possible values for definition of image's validity after upgrading to a new version.", - ) - -class Validity2(EnumDefinitionImpl): - """ - Possible values for definition of image's validity after upgrading to a new version. - """ - forever = PermissibleValue( - text="forever", - description="Outdated version of the image will remain valid for as long as the cloud operates.") - - _defn = EnumDefinition( - name="Validity2", - description="Possible values for definition of image's validity after upgrading to a new version.", - ) - -class GaiaXTermsAndConditions(EnumDefinitionImpl): - """ - SHA256 check sum of Gaia-X Terms and Conditions: 'The PARTICIPANT signing Gaia-X credentials agrees as follows: - - to update its Gaia-X credentials about any changes, be it technical, organizational, or legal - especially but not - limited to contractual in regards to the indicated attributes present in the Gaia-X credentials. - The keypair used to sign Gaia-X credentials will be revoked where Gaia-X Association becomes aware of any - inaccurate statements in regards to the claims which result in a non-compliance with the Trust Framework and - policy rules defined in the Policy Rules and Labelling Document (PRLD).' - """ - _defn = EnumDefinition( - name="GaiaXTermsAndConditions", - description="""SHA256 check sum of Gaia-X Terms and Conditions: 'The PARTICIPANT signing Gaia-X credentials agrees as follows: - to update its Gaia-X credentials about any changes, be it technical, organizational, or legal - especially but not limited to contractual in regards to the indicated attributes present in the Gaia-X credentials. -The keypair used to sign Gaia-X credentials will be revoked where Gaia-X Association becomes aware of any inaccurate statements in regards to the claims which result in a non-compliance with the Trust Framework and policy rules defined in the Policy Rules and Labelling Document (PRLD).'""", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "4bd7554097444c960292b4726c2efa1373485e8a5565d94d41195214c5e0ceb3", - PermissibleValue(text="4bd7554097444c960292b4726c2efa1373485e8a5565d94d41195214c5e0ceb3")) - -class MemoryClasses(EnumDefinitionImpl): - - SDRAM = PermissibleValue( - text="SDRAM", - description="Synchronous DRAM, improves performance in data transfer actions through its pins.") - DDR4 = PermissibleValue( - text="DDR4", - description="""Fourth generation of the synchronous dynamic random-access memory interface, improves speed and efficiency in data transfer actions.""") - DDR5 = PermissibleValue( - text="DDR5", - description="""Fifth generation of the synchronous dynamic random-access memory interface, planned to reduce power consumption.""") - GDDR5 = PermissibleValue( - text="GDDR5", - description="""Type of memory that is also based on the DDR standard, but designed specifically to be used in graphic cards.""") - GDDR6 = PermissibleValue( - text="GDDR6", - description="Evolution of GDDR5 memory, designed for high-performance computing.") - other = PermissibleValue( - text="other", - description="Memory class no further described.") - - _defn = EnumDefinition( - name="MemoryClasses", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "DDR SDRAM", + text="VN-66", + description="Region code for Hưng Yên.")) + setattr(cls, "VN-67", + PermissibleValue( + text="VN-67", + description="Region code for Nam Định.")) + setattr(cls, "VN-68", + PermissibleValue( + text="VN-68", + description="Region code for Phú Thọ.")) + setattr(cls, "VN-69", + PermissibleValue( + text="VN-69", + description="Region code for Thái Nguyên.")) + setattr(cls, "VN-70", + PermissibleValue( + text="VN-70", + description="Region code for Vĩnh Phúc.")) + setattr(cls, "VN-71", + PermissibleValue( + text="VN-71", + description="Region code for Điện Biên.")) + setattr(cls, "VN-72", + PermissibleValue( + text="VN-72", + description="Region code for Đắk Nông.")) + setattr(cls, "VN-73", PermissibleValue( - text="DDR SDRAM", - description="SDRAM evolution with twice the data transmission frequency.")) - setattr(cls, "ECC DRAM", + text="VN-73", + description="Region code for Hậu Giang.")) + setattr(cls, "VN-CT", PermissibleValue( - text="ECC DRAM", - description="This type of DRAM memory can find and even fix corrupted data.")) - -class MemoryRanks(EnumDefinitionImpl): - - other = PermissibleValue( - text="other", - description="Memory rank no further described.") - - _defn = EnumDefinition( - name="MemoryRanks", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "1R RDIMM", + text="VN-CT", + description="Region code for Cần Thơ.")) + setattr(cls, "VN-DN", PermissibleValue( - text="1R RDIMM", - description="""(Registered DIMM) A single-rank (1R) memory module contains one set of DRAM chips that is accessed during writing/reading operations.""")) - setattr(cls, "2R RDIMM", + text="VN-DN", + description="Region code for Đà Nẵng.")) + setattr(cls, "VN-HN", PermissibleValue( - text="2R RDIMM", - description="""(Registered DIMM) A dual-rank (2R) memory module contains two sets of DRAM chips that are accessed during writing/reading operations.""")) - setattr(cls, "4R LRDIMM", + text="VN-HN", + description="Region code for Hà Nội.")) + setattr(cls, "VN-HP", PermissibleValue( - text="4R LRDIMM", - description="""(Load Reduced DIMM) A quad-rank (4R) memory module contains four sets of DRAM chips that are accessed during writing/reading operations.""")) - -class PXEDiskType(EnumDefinitionImpl): - - WINPE = PermissibleValue(text="WINPE") - ISO = PermissibleValue(text="ISO") + text="VN-HP", + description="Region code for Hải Phòng.")) + setattr(cls, "VN-SG", + PermissibleValue( + text="VN-SG", + description="Region code for Hồ Chí Minh.")) + setattr(cls, "VU-MAP", + PermissibleValue( + text="VU-MAP", + description="Region code for Malampa.")) + setattr(cls, "VU-PAM", + PermissibleValue( + text="VU-PAM", + description="Region code for Pénama.")) + setattr(cls, "VU-SAM", + PermissibleValue( + text="VU-SAM", + description="Region code for Sanma.")) + setattr(cls, "VU-SEE", + PermissibleValue( + text="VU-SEE", + description="Region code for Shéfa.")) + setattr(cls, "VU-TAE", + PermissibleValue( + text="VU-TAE", + description="Region code for Taféa.")) + setattr(cls, "VU-TOB", + PermissibleValue( + text="VU-TOB", + description="Region code for Torba.")) + setattr(cls, "WF-AL", + PermissibleValue( + text="WF-AL", + description="Region code for Alo.")) + setattr(cls, "WF-SG", + PermissibleValue( + text="WF-SG", + description="Region code for Sigave.")) + setattr(cls, "WF-UV", + PermissibleValue( + text="WF-UV", + description="Region code for Uvea.")) + setattr(cls, "WS-AA", + PermissibleValue( + text="WS-AA", + description="Region code for A'ana.")) + setattr(cls, "WS-AL", + PermissibleValue( + text="WS-AL", + description="Region code for Aiga-i-le-Tai.")) + setattr(cls, "WS-AT", + PermissibleValue( + text="WS-AT", + description="Region code for Atua.")) + setattr(cls, "WS-FA", + PermissibleValue( + text="WS-FA", + description="Region code for Fa'asaleleaga.")) + setattr(cls, "WS-GE", + PermissibleValue( + text="WS-GE", + description="Region code for Gaga'emauga.")) + setattr(cls, "WS-GI", + PermissibleValue( + text="WS-GI", + description="Region code for Gagaifomauga.")) + setattr(cls, "WS-PA", + PermissibleValue( + text="WS-PA", + description="Region code for Palauli.")) + setattr(cls, "WS-SA", + PermissibleValue( + text="WS-SA", + description="Region code for Satupa'itea.")) + setattr(cls, "WS-TU", + PermissibleValue( + text="WS-TU", + description="Region code for Tuamasaga.")) + setattr(cls, "WS-VF", + PermissibleValue( + text="WS-VF", + description="Region code for Va'a-o-Fonoti.")) + setattr(cls, "WS-VS", + PermissibleValue( + text="WS-VS", + description="Region code for Vaisigano.")) + setattr(cls, "YE-AB", + PermissibleValue( + text="YE-AB", + description="Region code for Abyan.")) + setattr(cls, "YE-AD", + PermissibleValue( + text="YE-AD", + description="Region code for ‘Adan.")) + setattr(cls, "YE-AM", + PermissibleValue( + text="YE-AM", + description="Region code for ‘Amrān.")) + setattr(cls, "YE-BA", + PermissibleValue( + text="YE-BA", + description="Region code for Al Bayḑā’.")) + setattr(cls, "YE-DA", + PermissibleValue( + text="YE-DA", + description="Region code for Aḑ Ḑāli‘.")) + setattr(cls, "YE-DH", + PermissibleValue( + text="YE-DH", + description="Region code for Dhamār.")) + setattr(cls, "YE-HD", + PermissibleValue( + text="YE-HD", + description="Region code for Ḩaḑramawt.")) + setattr(cls, "YE-HJ", + PermissibleValue( + text="YE-HJ", + description="Region code for Ḩajjah.")) + setattr(cls, "YE-HU", + PermissibleValue( + text="YE-HU", + description="Region code for Al Ḩudaydah.")) + setattr(cls, "YE-IB", + PermissibleValue( + text="YE-IB", + description="Region code for Ibb.")) + setattr(cls, "YE-JA", + PermissibleValue( + text="YE-JA", + description="Region code for Al Jawf.")) + setattr(cls, "YE-LA", + PermissibleValue( + text="YE-LA", + description="Region code for Laḩij.")) + setattr(cls, "YE-MA", + PermissibleValue( + text="YE-MA", + description="Region code for Ma’rib.")) + setattr(cls, "YE-MR", + PermissibleValue( + text="YE-MR", + description="Region code for Al Mahrah.")) + setattr(cls, "YE-MW", + PermissibleValue( + text="YE-MW", + description="Region code for Al Maḩwīt.")) + setattr(cls, "YE-RA", + PermissibleValue( + text="YE-RA", + description="Region code for Raymah.")) + setattr(cls, "YE-SA", + PermissibleValue( + text="YE-SA", + description="Region code for Amānat al ‘Āşimah [city].")) + setattr(cls, "YE-SD", + PermissibleValue( + text="YE-SD", + description="Region code for Şāʻdah.")) + setattr(cls, "YE-SH", + PermissibleValue( + text="YE-SH", + description="Region code for Shabwah.")) + setattr(cls, "YE-SN", + PermissibleValue( + text="YE-SN", + description="Region code for Şanʻā’.")) + setattr(cls, "YE-SU", + PermissibleValue( + text="YE-SU", + description="Region code for Arkhabīl Suquţrá.")) + setattr(cls, "YE-TA", + PermissibleValue( + text="YE-TA", + description="Region code for Tāʻizz.")) + setattr(cls, "ZA-EC", + PermissibleValue( + text="ZA-EC", + description="Region code for Oos-Kaap.")) + setattr(cls, "ZA-FS", + PermissibleValue( + text="ZA-FS", + description="Region code for Vrystaat.")) + setattr(cls, "ZA-GP", + PermissibleValue( + text="ZA-GP", + description="Region code for Gauteng.")) + setattr(cls, "ZA-KZN", + PermissibleValue( + text="ZA-KZN", + description="Region code for KwaZulu-Natal.")) + setattr(cls, "ZA-LP", + PermissibleValue( + text="ZA-LP", + description="Region code for Limpopo.")) + setattr(cls, "ZA-MP", + PermissibleValue( + text="ZA-MP", + description="Region code for Mpumalanga.")) + setattr(cls, "ZA-NC", + PermissibleValue( + text="ZA-NC", + description="Region code for Noord-Kaap.")) + setattr(cls, "ZA-NW", + PermissibleValue( + text="ZA-NW", + description="Region code for Noordwes.")) + setattr(cls, "ZA-WC", + PermissibleValue( + text="ZA-WC", + description="Region code for Wes-Kaap.")) + setattr(cls, "ZM-01", + PermissibleValue( + text="ZM-01", + description="Region code for Western.")) + setattr(cls, "ZM-02", + PermissibleValue( + text="ZM-02", + description="Region code for Central.")) + setattr(cls, "ZM-03", + PermissibleValue( + text="ZM-03", + description="Region code for Eastern.")) + setattr(cls, "ZM-04", + PermissibleValue( + text="ZM-04", + description="Region code for Luapula.")) + setattr(cls, "ZM-05", + PermissibleValue( + text="ZM-05", + description="Region code for Northern.")) + setattr(cls, "ZM-06", + PermissibleValue( + text="ZM-06", + description="Region code for North-Western.")) + setattr(cls, "ZM-07", + PermissibleValue( + text="ZM-07", + description="Region code for Southern.")) + setattr(cls, "ZM-08", + PermissibleValue( + text="ZM-08", + description="Region code for Copperbelt.")) + setattr(cls, "ZM-09", + PermissibleValue( + text="ZM-09", + description="Region code for Lusaka.")) + setattr(cls, "ZM-10", + PermissibleValue( + text="ZM-10", + description="Region code for Muchinga.")) + setattr(cls, "ZW-BU", + PermissibleValue( + text="ZW-BU", + description="Region code for Bulawayo.")) + setattr(cls, "ZW-HA", + PermissibleValue( + text="ZW-HA", + description="Region code for Harare.")) + setattr(cls, "ZW-MA", + PermissibleValue( + text="ZW-MA", + description="Region code for Manicaland.")) + setattr(cls, "ZW-MC", + PermissibleValue( + text="ZW-MC", + description="Region code for Mashonaland Central.")) + setattr(cls, "ZW-ME", + PermissibleValue( + text="ZW-ME", + description="Region code for Mashonaland East.")) + setattr(cls, "ZW-MI", + PermissibleValue( + text="ZW-MI", + description="Region code for Midlands.")) + setattr(cls, "ZW-MN", + PermissibleValue( + text="ZW-MN", + description="Region code for Matabeleland North.")) + setattr(cls, "ZW-MS", + PermissibleValue( + text="ZW-MS", + description="Region code for Matabeleland South.")) + setattr(cls, "ZW-MV", + PermissibleValue( + text="ZW-MV", + description="Region code for Masvingo.")) + setattr(cls, "ZW-MW", + PermissibleValue( + text="ZW-MW", + description="Region code for Mashonaland West.")) + +class NUTS2Region(EnumDefinitionImpl): + + BE10 = PermissibleValue( + text="BE10", + description="NUTS2 Code for Région de Bruxelles-Capitale/Brussels Hoofdstedelijk Gewest") + BE21 = PermissibleValue( + text="BE21", + description="NUTS2 Code for Prov. Antwerpen") + BE22 = PermissibleValue( + text="BE22", + description="NUTS2 Code for Prov. Limburg (BE)") + BE23 = PermissibleValue( + text="BE23", + description="NUTS2 Code for Prov. Oost-Vlaanderen") + BE24 = PermissibleValue( + text="BE24", + description="NUTS2 Code for Prov. Vlaams-Brabant") + BE25 = PermissibleValue( + text="BE25", + description="NUTS2 Code for Prov. West-Vlaanderen") + BE31 = PermissibleValue( + text="BE31", + description="NUTS2 Code for Prov. Brabant wallon") + BE32 = PermissibleValue( + text="BE32", + description="NUTS2 Code for Prov. Hainaut") + BE33 = PermissibleValue( + text="BE33", + description="NUTS2 Code for Prov. Liège") + BE34 = PermissibleValue( + text="BE34", + description="NUTS2 Code for Prov. Luxembourg (BE)") + BE35 = PermissibleValue( + text="BE35", + description="NUTS2 Code for Prov. Namur") + BEZZ = PermissibleValue( + text="BEZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + BG31 = PermissibleValue( + text="BG31", + description="NUTS2 Code for Северозападен") + BG32 = PermissibleValue( + text="BG32", + description="NUTS2 Code for Северен централен") + BG33 = PermissibleValue( + text="BG33", + description="NUTS2 Code for Североизточен") + BG34 = PermissibleValue( + text="BG34", + description="NUTS2 Code for Югоизточен") + BG41 = PermissibleValue( + text="BG41", + description="NUTS2 Code for Югозападен") + BG42 = PermissibleValue( + text="BG42", + description="NUTS2 Code for Южен централен") + BGZZ = PermissibleValue( + text="BGZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + CZ01 = PermissibleValue( + text="CZ01", + description="NUTS2 Code for Praha") + CZ02 = PermissibleValue( + text="CZ02", + description="NUTS2 Code for Střední Čechy") + CZ03 = PermissibleValue( + text="CZ03", + description="NUTS2 Code for Jihozápad") + CZ04 = PermissibleValue( + text="CZ04", + description="NUTS2 Code for Severozápad") + CZ05 = PermissibleValue( + text="CZ05", + description="NUTS2 Code for Severovýchod") + CZ06 = PermissibleValue( + text="CZ06", + description="NUTS2 Code for Jihovýchod") + CZ07 = PermissibleValue( + text="CZ07", + description="NUTS2 Code for Střední Morava") + CZ08 = PermissibleValue( + text="CZ08", + description="NUTS2 Code for Moravskoslezsko") + CZZZ = PermissibleValue( + text="CZZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + DK01 = PermissibleValue( + text="DK01", + description="NUTS2 Code for Hovedstaden") + DK02 = PermissibleValue( + text="DK02", + description="NUTS2 Code for Sjælland") + DK03 = PermissibleValue( + text="DK03", + description="NUTS2 Code for Syddanmark") + DK04 = PermissibleValue( + text="DK04", + description="NUTS2 Code for Midtjylland") + DK05 = PermissibleValue( + text="DK05", + description="NUTS2 Code for Nordjylland") + DKZZ = PermissibleValue( + text="DKZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + DE11 = PermissibleValue( + text="DE11", + description="NUTS2 Code for Stuttgart") + DE12 = PermissibleValue( + text="DE12", + description="NUTS2 Code for Karlsruhe") + DE13 = PermissibleValue( + text="DE13", + description="NUTS2 Code for Freiburg") + DE14 = PermissibleValue( + text="DE14", + description="NUTS2 Code for Tübingen") + DE21 = PermissibleValue( + text="DE21", + description="NUTS2 Code for Oberbayern") + DE22 = PermissibleValue( + text="DE22", + description="NUTS2 Code for Niederbayern") + DE23 = PermissibleValue( + text="DE23", + description="NUTS2 Code for Oberpfalz") + DE24 = PermissibleValue( + text="DE24", + description="NUTS2 Code for Oberfranken") + DE25 = PermissibleValue( + text="DE25", + description="NUTS2 Code for Mittelfranken") + DE26 = PermissibleValue( + text="DE26", + description="NUTS2 Code for Unterfranken") + DE27 = PermissibleValue( + text="DE27", + description="NUTS2 Code for Schwaben") + DE30 = PermissibleValue( + text="DE30", + description="NUTS2 Code for Berlin") + DE40 = PermissibleValue( + text="DE40", + description="NUTS2 Code for Brandenburg") + DE50 = PermissibleValue( + text="DE50", + description="NUTS2 Code for Bremen") + DE60 = PermissibleValue( + text="DE60", + description="NUTS2 Code for Hamburg") + DE71 = PermissibleValue( + text="DE71", + description="NUTS2 Code for Darmstadt") + DE72 = PermissibleValue( + text="DE72", + description="NUTS2 Code for Gießen") + DE73 = PermissibleValue( + text="DE73", + description="NUTS2 Code for Kassel") + DE80 = PermissibleValue( + text="DE80", + description="NUTS2 Code for Mecklenburg-Vorpommern") + DE91 = PermissibleValue( + text="DE91", + description="NUTS2 Code for Braunschweig") + DE92 = PermissibleValue( + text="DE92", + description="NUTS2 Code for Hannover") + DE93 = PermissibleValue( + text="DE93", + description="NUTS2 Code for Lüneburg") + DE94 = PermissibleValue( + text="DE94", + description="NUTS2 Code for Weser-Ems") + DEA1 = PermissibleValue( + text="DEA1", + description="NUTS2 Code for Düsseldorf") + DEA2 = PermissibleValue( + text="DEA2", + description="NUTS2 Code for Köln") + DEA3 = PermissibleValue( + text="DEA3", + description="NUTS2 Code for Münster") + DEA4 = PermissibleValue( + text="DEA4", + description="NUTS2 Code for Detmold") + DEA5 = PermissibleValue( + text="DEA5", + description="NUTS2 Code for Arnsberg") + DEB1 = PermissibleValue( + text="DEB1", + description="NUTS2 Code for Koblenz") + DEB2 = PermissibleValue( + text="DEB2", + description="NUTS2 Code for Trier") + DEB3 = PermissibleValue( + text="DEB3", + description="NUTS2 Code for Rheinhessen-Pfalz") + DEC0 = PermissibleValue( + text="DEC0", + description="NUTS2 Code for Saarland") + DED2 = PermissibleValue( + text="DED2", + description="NUTS2 Code for Dresden") + DED4 = PermissibleValue( + text="DED4", + description="NUTS2 Code for Chemnitz") + DED5 = PermissibleValue( + text="DED5", + description="NUTS2 Code for Leipzig") + DEE0 = PermissibleValue( + text="DEE0", + description="NUTS2 Code for Sachsen-Anhalt") + DEF0 = PermissibleValue( + text="DEF0", + description="NUTS2 Code for Schleswig-Holstein") + DEG0 = PermissibleValue( + text="DEG0", + description="NUTS2 Code for Thüringen") + DEZZ = PermissibleValue( + text="DEZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + EE00 = PermissibleValue( + text="EE00", + description="NUTS2 Code for Eesti") + EEZZ = PermissibleValue( + text="EEZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + IE04 = PermissibleValue( + text="IE04", + description="NUTS2 Code for Northern and Western") + IE05 = PermissibleValue( + text="IE05", + description="NUTS2 Code for Southern") + IE06 = PermissibleValue( + text="IE06", + description="NUTS2 Code for Eastern and Midland") + IEZZ = PermissibleValue( + text="IEZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + EL30 = PermissibleValue( + text="EL30", + description="NUTS2 Code for Aττική") + EL41 = PermissibleValue( + text="EL41", + description="NUTS2 Code for Βόρειο Αιγαίο") + EL42 = PermissibleValue( + text="EL42", + description="NUTS2 Code for Νότιο Αιγαίο") + EL43 = PermissibleValue( + text="EL43", + description="NUTS2 Code for Κρήτη") + EL51 = PermissibleValue( + text="EL51", + description="NUTS2 Code for Aνατολική Μακεδονία, Θράκη") + EL52 = PermissibleValue( + text="EL52", + description="NUTS2 Code for Κεντρική Μακεδονία") + EL53 = PermissibleValue( + text="EL53", + description="NUTS2 Code for Δυτική Μακεδονία") + EL54 = PermissibleValue( + text="EL54", + description="NUTS2 Code for Ήπειρος") + EL61 = PermissibleValue( + text="EL61", + description="NUTS2 Code for Θεσσαλία") + EL62 = PermissibleValue( + text="EL62", + description="NUTS2 Code for Ιόνια Νησιά") + EL63 = PermissibleValue( + text="EL63", + description="NUTS2 Code for Δυτική Ελλάδα") + EL64 = PermissibleValue( + text="EL64", + description="NUTS2 Code for Στερεά Ελλάδα") + EL65 = PermissibleValue( + text="EL65", + description="NUTS2 Code for Πελοπόννησος") + ELZZ = PermissibleValue( + text="ELZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + ES11 = PermissibleValue( + text="ES11", + description="NUTS2 Code for Galicia") + ES12 = PermissibleValue( + text="ES12", + description="NUTS2 Code for Principado de Asturias") + ES13 = PermissibleValue( + text="ES13", + description="NUTS2 Code for Cantabria") + ES21 = PermissibleValue( + text="ES21", + description="NUTS2 Code for País Vasco") + ES22 = PermissibleValue( + text="ES22", + description="NUTS2 Code for Comunidad Foral de Navarra") + ES23 = PermissibleValue( + text="ES23", + description="NUTS2 Code for La Rioja") + ES24 = PermissibleValue( + text="ES24", + description="NUTS2 Code for Aragón") + ES30 = PermissibleValue( + text="ES30", + description="NUTS2 Code for Comunidad de Madrid") + ES41 = PermissibleValue( + text="ES41", + description="NUTS2 Code for Castilla y León") + ES42 = PermissibleValue( + text="ES42", + description="NUTS2 Code for Castilla-La Mancha") + ES43 = PermissibleValue( + text="ES43", + description="NUTS2 Code for Extremadura") + ES51 = PermissibleValue( + text="ES51", + description="NUTS2 Code for Cataluña") + ES52 = PermissibleValue( + text="ES52", + description="NUTS2 Code for Comunitat Valenciana") + ES53 = PermissibleValue( + text="ES53", + description="NUTS2 Code for Illes Balears") + ES61 = PermissibleValue( + text="ES61", + description="NUTS2 Code for Andalucía") + ES62 = PermissibleValue( + text="ES62", + description="NUTS2 Code for Región de Murcia") + ES63 = PermissibleValue( + text="ES63", + description="NUTS2 Code for Ciudad de Ceuta") + ES64 = PermissibleValue( + text="ES64", + description="NUTS2 Code for Ciudad de Melilla") + ES70 = PermissibleValue( + text="ES70", + description="NUTS2 Code for Canarias") + ESZZ = PermissibleValue( + text="ESZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + FR10 = PermissibleValue( + text="FR10", + description="NUTS2 Code for Ile-de-France") + FRB0 = PermissibleValue( + text="FRB0", + description="NUTS2 Code for Centre — Val de Loire") + FRC1 = PermissibleValue( + text="FRC1", + description="NUTS2 Code for Bourgogne") + FRC2 = PermissibleValue( + text="FRC2", + description="NUTS2 Code for Franche-Comté") + FRD1 = PermissibleValue( + text="FRD1", + description="NUTS2 Code for Basse-Normandie") + FRD2 = PermissibleValue( + text="FRD2", + description="NUTS2 Code for Haute-Normandie") + FRE1 = PermissibleValue( + text="FRE1", + description="NUTS2 Code for Nord-Pas de Calais") + FRE2 = PermissibleValue( + text="FRE2", + description="NUTS2 Code for Picardie") + FRF1 = PermissibleValue( + text="FRF1", + description="NUTS2 Code for Alsace") + FRF2 = PermissibleValue( + text="FRF2", + description="NUTS2 Code for Champagne-Ardenne") + FRF3 = PermissibleValue( + text="FRF3", + description="NUTS2 Code for Lorraine") + FRG0 = PermissibleValue( + text="FRG0", + description="NUTS2 Code for Pays de la Loire") + FRH0 = PermissibleValue( + text="FRH0", + description="NUTS2 Code for Bretagne") + FRI1 = PermissibleValue( + text="FRI1", + description="NUTS2 Code for Aquitaine") + FRI2 = PermissibleValue( + text="FRI2", + description="NUTS2 Code for Limousin") + FRI3 = PermissibleValue( + text="FRI3", + description="NUTS2 Code for Poitou-Charentes") + FRJ1 = PermissibleValue( + text="FRJ1", + description="NUTS2 Code for Languedoc-Roussillon") + FRJ2 = PermissibleValue( + text="FRJ2", + description="NUTS2 Code for Midi-Pyrénées") + FRK1 = PermissibleValue( + text="FRK1", + description="NUTS2 Code for Auvergne") + FRK2 = PermissibleValue( + text="FRK2", + description="NUTS2 Code for Rhône-Alpes") + FRL0 = PermissibleValue( + text="FRL0", + description="NUTS2 Code for Provence-Alpes-Côte d’Azur") + FRM0 = PermissibleValue( + text="FRM0", + description="NUTS2 Code for Corse") + FRY1 = PermissibleValue( + text="FRY1", + description="NUTS2 Code for Guadeloupe") + FRY2 = PermissibleValue( + text="FRY2", + description="NUTS2 Code for Martinique") + FRY3 = PermissibleValue( + text="FRY3", + description="NUTS2 Code for Guyane") + FRY4 = PermissibleValue( + text="FRY4", + description="NUTS2 Code for La Réunion") + FRY5 = PermissibleValue( + text="FRY5", + description="NUTS2 Code for Mayotte") + FRZZ = PermissibleValue( + text="FRZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + HR02 = PermissibleValue( + text="HR02", + description="NUTS2 Code for Panonska Hrvatska") + HR03 = PermissibleValue( + text="HR03", + description="NUTS2 Code for Jadranska Hrvatska") + HR05 = PermissibleValue( + text="HR05", + description="NUTS2 Code for Grad Zagreb") + HR06 = PermissibleValue( + text="HR06", + description="NUTS2 Code for Sjeverna Hrvatska") + HRZZ = PermissibleValue( + text="HRZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + ITC1 = PermissibleValue( + text="ITC1", + description="NUTS2 Code for Piemonte") + ITC2 = PermissibleValue( + text="ITC2", + description="NUTS2 Code for Valle d’Aosta/Vallée d’Aoste") + ITC3 = PermissibleValue( + text="ITC3", + description="NUTS2 Code for Liguria") + ITC4 = PermissibleValue( + text="ITC4", + description="NUTS2 Code for Lombardia") + ITF1 = PermissibleValue( + text="ITF1", + description="NUTS2 Code for Abruzzo") + ITF2 = PermissibleValue( + text="ITF2", + description="NUTS2 Code for Molise") + ITF3 = PermissibleValue( + text="ITF3", + description="NUTS2 Code for Campania") + ITF4 = PermissibleValue( + text="ITF4", + description="NUTS2 Code for Puglia") + ITF5 = PermissibleValue( + text="ITF5", + description="NUTS2 Code for Basilicata") + ITF6 = PermissibleValue( + text="ITF6", + description="NUTS2 Code for Calabria") + ITG1 = PermissibleValue( + text="ITG1", + description="NUTS2 Code for Sicilia") + ITG2 = PermissibleValue( + text="ITG2", + description="NUTS2 Code for Sardegna") + ITH1 = PermissibleValue( + text="ITH1", + description="NUTS2 Code for Provincia Autonoma di Bolzano/Bozen") + ITH2 = PermissibleValue( + text="ITH2", + description="NUTS2 Code for Provincia Autonoma di Trento") + ITH3 = PermissibleValue( + text="ITH3", + description="NUTS2 Code for Veneto") + ITH4 = PermissibleValue( + text="ITH4", + description="NUTS2 Code for Friuli-Venezia Giulia") + ITH5 = PermissibleValue( + text="ITH5", + description="NUTS2 Code for Emilia-Romagna") + ITI1 = PermissibleValue( + text="ITI1", + description="NUTS2 Code for Toscana") + ITI2 = PermissibleValue( + text="ITI2", + description="NUTS2 Code for Umbria") + ITI3 = PermissibleValue( + text="ITI3", + description="NUTS2 Code for Marche") + ITI4 = PermissibleValue( + text="ITI4", + description="NUTS2 Code for Lazio") + ITZZ = PermissibleValue( + text="ITZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + CY00 = PermissibleValue( + text="CY00", + description="NUTS2 Code for Κύπρος") + CYZZ = PermissibleValue( + text="CYZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + LV00 = PermissibleValue( + text="LV00", + description="NUTS2 Code for Latvija") + LVZZ = PermissibleValue( + text="LVZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + LT01 = PermissibleValue( + text="LT01", + description="NUTS2 Code for Sostinės regionas") + LT02 = PermissibleValue( + text="LT02", + description="NUTS2 Code for Vidurio ir vakarų Lietuvos regionas") + LTZZ = PermissibleValue( + text="LTZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + LU00 = PermissibleValue( + text="LU00", + description="NUTS2 Code for Luxembourg") + LUZZ = PermissibleValue( + text="LUZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + HU11 = PermissibleValue( + text="HU11", + description="NUTS2 Code for Budapest") + HU12 = PermissibleValue( + text="HU12", + description="NUTS2 Code for Pest") + HU21 = PermissibleValue( + text="HU21", + description="NUTS2 Code for Közép-Dunántúl") + HU22 = PermissibleValue( + text="HU22", + description="NUTS2 Code for Nyugat-Dunántúl") + HU23 = PermissibleValue( + text="HU23", + description="NUTS2 Code for Dél-Dunántúl") + HU31 = PermissibleValue( + text="HU31", + description="NUTS2 Code for Észak-Magyarország") + HU32 = PermissibleValue( + text="HU32", + description="NUTS2 Code for Észak-Alföld") + HU33 = PermissibleValue( + text="HU33", + description="NUTS2 Code for Dél-Alföld") + HUZZ = PermissibleValue( + text="HUZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + MT00 = PermissibleValue( + text="MT00", + description="NUTS2 Code for Malta") + MTZZ = PermissibleValue( + text="MTZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + NL11 = PermissibleValue( + text="NL11", + description="NUTS2 Code for Groningen") + NL12 = PermissibleValue( + text="NL12", + description="NUTS2 Code for Friesland (NL)") + NL13 = PermissibleValue( + text="NL13", + description="NUTS2 Code for Drenthe") + NL21 = PermissibleValue( + text="NL21", + description="NUTS2 Code for Overijssel") + NL22 = PermissibleValue( + text="NL22", + description="NUTS2 Code for Gelderland") + NL23 = PermissibleValue( + text="NL23", + description="NUTS2 Code for Flevoland") + NL32 = PermissibleValue( + text="NL32", + description="NUTS2 Code for Noord-Holland") + NL34 = PermissibleValue( + text="NL34", + description="NUTS2 Code for Zeeland") + NL35 = PermissibleValue( + text="NL35", + description="NUTS2 Code for Utrecht") + NL36 = PermissibleValue( + text="NL36", + description="NUTS2 Code for Zuid-Holland") + NL41 = PermissibleValue( + text="NL41", + description="NUTS2 Code for Noord-Brabant") + NL42 = PermissibleValue( + text="NL42", + description="NUTS2 Code for Limburg (NL)") + NLZZ = PermissibleValue( + text="NLZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + AT11 = PermissibleValue( + text="AT11", + description="NUTS2 Code for Burgenland") + AT12 = PermissibleValue( + text="AT12", + description="NUTS2 Code for Niederösterreich") + AT13 = PermissibleValue( + text="AT13", + description="NUTS2 Code for Wien") + AT21 = PermissibleValue( + text="AT21", + description="NUTS2 Code for Kärnten") + AT22 = PermissibleValue( + text="AT22", + description="NUTS2 Code for Steiermark") + AT31 = PermissibleValue( + text="AT31", + description="NUTS2 Code for Oberösterreich") + AT32 = PermissibleValue( + text="AT32", + description="NUTS2 Code for Salzburg") + AT33 = PermissibleValue( + text="AT33", + description="NUTS2 Code for Tirol") + AT34 = PermissibleValue( + text="AT34", + description="NUTS2 Code for Vorarlberg") + ATZZ = PermissibleValue( + text="ATZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + PL21 = PermissibleValue( + text="PL21", + description="NUTS2 Code for Małopolskie") + PL22 = PermissibleValue( + text="PL22", + description="NUTS2 Code for Śląskie") + PL41 = PermissibleValue( + text="PL41", + description="NUTS2 Code for Wielkopolskie") + PL42 = PermissibleValue( + text="PL42", + description="NUTS2 Code for Zachodniopomorskie") + PL43 = PermissibleValue( + text="PL43", + description="NUTS2 Code for Lubuskie") + PL51 = PermissibleValue( + text="PL51", + description="NUTS2 Code for Dolnośląskie") + PL52 = PermissibleValue( + text="PL52", + description="NUTS2 Code for Opolskie") + PL61 = PermissibleValue( + text="PL61", + description="NUTS2 Code for Kujawsko-pomorskie") + PL62 = PermissibleValue( + text="PL62", + description="NUTS2 Code for Warmińsko-mazurskie") + PL63 = PermissibleValue( + text="PL63", + description="NUTS2 Code for Pomorskie") + PL71 = PermissibleValue( + text="PL71", + description="NUTS2 Code for Łódzkie") + PL72 = PermissibleValue( + text="PL72", + description="NUTS2 Code for Świętokrzyskie") + PL81 = PermissibleValue( + text="PL81", + description="NUTS2 Code for Lubelskie") + PL82 = PermissibleValue( + text="PL82", + description="NUTS2 Code for Podkarpackie") + PL84 = PermissibleValue( + text="PL84", + description="NUTS2 Code for Podlaskie") + PL91 = PermissibleValue( + text="PL91", + description="NUTS2 Code for Warszawski stołeczny") + PL92 = PermissibleValue( + text="PL92", + description="NUTS2 Code for Mazowiecki regionalny") + PLZZ = PermissibleValue( + text="PLZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + PT11 = PermissibleValue( + text="PT11", + description="NUTS2 Code for Norte") + PT15 = PermissibleValue( + text="PT15", + description="NUTS2 Code for Algarve") + PT19 = PermissibleValue( + text="PT19", + description="NUTS2 Code for Centro (PT)") + PT1A = PermissibleValue( + text="PT1A", + description="NUTS2 Code for Grande Lisboa") + PT1B = PermissibleValue( + text="PT1B", + description="NUTS2 Code for Península de Setúbal") + PT1C = PermissibleValue( + text="PT1C", + description="NUTS2 Code for Alentejo") + PT1D = PermissibleValue( + text="PT1D", + description="NUTS2 Code for Oeste e Vale do Tejo") + PT20 = PermissibleValue( + text="PT20", + description="NUTS2 Code for Região Autónoma dos Açores") + PT30 = PermissibleValue( + text="PT30", + description="NUTS2 Code for Região Autónoma da Madeira") + PTZZ = PermissibleValue( + text="PTZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + RO11 = PermissibleValue( + text="RO11", + description="NUTS2 Code for Nord-Vest") + RO12 = PermissibleValue( + text="RO12", + description="NUTS2 Code for Centru") + RO21 = PermissibleValue( + text="RO21", + description="NUTS2 Code for Nord-Est") + RO22 = PermissibleValue( + text="RO22", + description="NUTS2 Code for Sud-Est") + RO31 = PermissibleValue( + text="RO31", + description="NUTS2 Code for Sud-Muntenia") + RO32 = PermissibleValue( + text="RO32", + description="NUTS2 Code for Bucureşti-Ilfov") + RO41 = PermissibleValue( + text="RO41", + description="NUTS2 Code for Sud-Vest Oltenia") + RO42 = PermissibleValue( + text="RO42", + description="NUTS2 Code for Vest") + ROZZ = PermissibleValue( + text="ROZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + SI03 = PermissibleValue( + text="SI03", + description="NUTS2 Code for Vzhodna Slovenija") + SI04 = PermissibleValue( + text="SI04", + description="NUTS2 Code for Zahodna Slovenija") + SIZZ = PermissibleValue( + text="SIZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + SK01 = PermissibleValue( + text="SK01", + description="NUTS2 Code for Bratislavský kraj") + SK02 = PermissibleValue( + text="SK02", + description="NUTS2 Code for Západné Slovensko") + SK03 = PermissibleValue( + text="SK03", + description="NUTS2 Code for Stredné Slovensko") + SK04 = PermissibleValue( + text="SK04", + description="NUTS2 Code for Východné Slovensko") + SKZZ = PermissibleValue( + text="SKZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + FI19 = PermissibleValue( + text="FI19", + description="NUTS2 Code for Länsi-Suomi") + FI1B = PermissibleValue( + text="FI1B", + description="NUTS2 Code for Helsinki-Uusimaa") + FI1C = PermissibleValue( + text="FI1C", + description="NUTS2 Code for Etelä-Suomi") + FI1D = PermissibleValue( + text="FI1D", + description="NUTS2 Code for Pohjois- ja Itä-Suomi") + FI20 = PermissibleValue( + text="FI20", + description="NUTS2 Code for Åland") + FIZZ = PermissibleValue( + text="FIZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") + SE11 = PermissibleValue( + text="SE11", + description="NUTS2 Code for Stockholm") + SE12 = PermissibleValue( + text="SE12", + description="NUTS2 Code for Östra Mellansverige") + SE21 = PermissibleValue( + text="SE21", + description="NUTS2 Code for Småland med öarna") + SE22 = PermissibleValue( + text="SE22", + description="NUTS2 Code for Sydsverige") + SE23 = PermissibleValue( + text="SE23", + description="NUTS2 Code for Västsverige") + SE31 = PermissibleValue( + text="SE31", + description="NUTS2 Code for Norra Mellansverige") + SE32 = PermissibleValue( + text="SE32", + description="NUTS2 Code for Mellersta Norrland") + SE33 = PermissibleValue( + text="SE33", + description="NUTS2 Code for Övre Norrland") + SEZZ = PermissibleValue( + text="SEZZ", + description="NUTS2 Code for Extra-Regio NUTS 2") _defn = EnumDefinition( - name="PXEDiskType", + name="NUTS2Region", ) class SPDX(EnumDefinitionImpl): @@ -8419,3144 +35574,6 @@ class AccessTypes(EnumDefinitionImpl): name="AccessTypes", ) -class MIMETypes(EnumDefinitionImpl): - - calendar = PermissibleValue(text="calendar") - cql = PermissibleValue(text="cql") - css = PermissibleValue(text="css") - csv = PermissibleValue(text="csv") - dns = PermissibleValue(text="dns") - encaprtp = PermissibleValue(text="encaprtp") - enriched = PermissibleValue(text="enriched") - example = PermissibleValue(text="example") - fhirpath = PermissibleValue(text="fhirpath") - flexfec = PermissibleValue(text="flexfec") - fwdred = PermissibleValue(text="fwdred") - gff3 = PermissibleValue(text="gff3") - hl7v2 = PermissibleValue(text="hl7v2") - html = PermissibleValue(text="html") - javascript = PermissibleValue(text="javascript") - markdown = PermissibleValue(text="markdown") - mizar = PermissibleValue(text="mizar") - n3 = PermissibleValue(text="n3") - parameters = PermissibleValue(text="parameters") - parityfec = PermissibleValue(text="parityfec") - plain = PermissibleValue(text="plain") - RED = PermissibleValue(text="RED") - richtext = PermissibleValue(text="richtext") - rtf = PermissibleValue(text="rtf") - rtploopback = PermissibleValue(text="rtploopback") - rtx = PermissibleValue(text="rtx") - SGML = PermissibleValue(text="SGML") - shacl = PermissibleValue(text="shacl") - shex = PermissibleValue(text="shex") - spdx = PermissibleValue(text="spdx") - strings = PermissibleValue(text="strings") - t140 = PermissibleValue(text="t140") - troff = PermissibleValue(text="troff") - turtle = PermissibleValue(text="turtle") - ulpfec = PermissibleValue(text="ulpfec") - vcard = PermissibleValue(text="vcard") - vtt = PermissibleValue(text="vtt") - wgsl = PermissibleValue(text="wgsl") - xml = PermissibleValue(text="xml") - A2L = PermissibleValue(text="A2L") - activemessage = PermissibleValue(text="activemessage") - AML = PermissibleValue(text="AML") - applefile = PermissibleValue(text="applefile") - ATF = PermissibleValue(text="ATF") - ATFX = PermissibleValue(text="ATFX") - atomicmail = PermissibleValue(text="atomicmail") - ATXML = PermissibleValue(text="ATXML") - cbor = PermissibleValue(text="cbor") - cccex = PermissibleValue(text="cccex") - cdni = PermissibleValue(text="cdni") - CEA = PermissibleValue(text="CEA") - cfw = PermissibleValue(text="cfw") - clr = PermissibleValue(text="clr") - cms = PermissibleValue(text="cms") - commonground = PermissibleValue(text="commonground") - cose = PermissibleValue(text="cose") - csrattrs = PermissibleValue(text="csrattrs") - cwl = PermissibleValue(text="cwl") - cwt = PermissibleValue(text="cwt") - cybercash = PermissibleValue(text="cybercash") - dashdelta = PermissibleValue(text="dashdelta") - DCD = PermissibleValue(text="DCD") - dicom = PermissibleValue(text="dicom") - DII = PermissibleValue(text="DII") - DIT = PermissibleValue(text="DIT") - dvcs = PermissibleValue(text="dvcs") - EDIFACT = PermissibleValue(text="EDIFACT") - efi = PermissibleValue(text="efi") - eshop = PermissibleValue(text="eshop") - exi = PermissibleValue(text="exi") - express = PermissibleValue(text="express") - fastinfoset = PermissibleValue(text="fastinfoset") - fastsoap = PermissibleValue(text="fastsoap") - fdf = PermissibleValue(text="fdf") - fits = PermissibleValue(text="fits") - gzip = PermissibleValue(text="gzip") - H224 = PermissibleValue(text="H224") - http = PermissibleValue(text="http") - hyperstudio = PermissibleValue(text="hyperstudio") - iges = PermissibleValue(text="iges") - index = PermissibleValue(text="index") - IOTP = PermissibleValue(text="IOTP") - ipfix = PermissibleValue(text="ipfix") - ipp = PermissibleValue(text="ipp") - ISUP = PermissibleValue(text="ISUP") - jose = PermissibleValue(text="jose") - json = PermissibleValue(text="json") - jwt = PermissibleValue(text="jwt") - linkset = PermissibleValue(text="linkset") - LXF = PermissibleValue(text="LXF") - macwriteii = PermissibleValue(text="macwriteii") - marc = PermissibleValue(text="marc") - mathematica = PermissibleValue(text="mathematica") - mbox = PermissibleValue(text="mbox") - MF4 = PermissibleValue(text="MF4") - mikey = PermissibleValue(text="mikey") - mipc = PermissibleValue(text="mipc") - mp21 = PermissibleValue(text="mp21") - mp4 = PermissibleValue(text="mp4") - msword = PermissibleValue(text="msword") - mxf = PermissibleValue(text="mxf") - nasdata = PermissibleValue(text="nasdata") - node = PermissibleValue(text="node") - nss = PermissibleValue(text="nss") - ODA = PermissibleValue(text="ODA") - ODX = PermissibleValue(text="ODX") - ogg = PermissibleValue(text="ogg") - oscore = PermissibleValue(text="oscore") - oxps = PermissibleValue(text="oxps") - p21 = PermissibleValue(text="p21") - passport = PermissibleValue(text="passport") - pdf = PermissibleValue(text="pdf") - PDX = PermissibleValue(text="PDX") - pkcs10 = PermissibleValue(text="pkcs10") - pkcs8 = PermissibleValue(text="pkcs8") - pkcs12 = PermissibleValue(text="pkcs12") - pkixcmp = PermissibleValue(text="pkixcmp") - postscript = PermissibleValue(text="postscript") - QSIG = PermissibleValue(text="QSIG") - raptorfec = PermissibleValue(text="raptorfec") - riscos = PermissibleValue(text="riscos") - sbe = PermissibleValue(text="sbe") - sdp = PermissibleValue(text="sdp") - sieve = PermissibleValue(text="sieve") - simpleSymbolContainer = PermissibleValue(text="simpleSymbolContainer") - sipc = PermissibleValue(text="sipc") - slate = PermissibleValue(text="slate") - smpte336m = PermissibleValue(text="smpte336m") - sql = PermissibleValue(text="sql") - srgs = PermissibleValue(text="srgs") - TETRA_ISI = PermissibleValue(text="TETRA_ISI") - tnauthlist = PermissibleValue(text="tnauthlist") - trig = PermissibleValue(text="trig") - tzif = PermissibleValue(text="tzif") - vemmi = PermissibleValue(text="vemmi") - wasm = PermissibleValue(text="wasm") - widget = PermissibleValue(text="widget") - wita = PermissibleValue(text="wita") - xfdf = PermissibleValue(text="xfdf") - yaml = PermissibleValue(text="yaml") - yang = PermissibleValue(text="yang") - zip = PermissibleValue(text="zip") - zlib = PermissibleValue(text="zlib") - zstd = PermissibleValue(text="zstd") - - _defn = EnumDefinition( - name="MIMETypes", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "1d-interleaved-parityfec", - PermissibleValue(text="1d-interleaved-parityfec")) - setattr(cls, "cache-manifest", - PermissibleValue(text="cache-manifest")) - setattr(cls, "cql-expression", - PermissibleValue(text="cql-expression")) - setattr(cls, "cql-identifier", - PermissibleValue(text="cql-identifier")) - setattr(cls, "csv-schema", - PermissibleValue(text="csv-schema")) - setattr(cls, "directory - DEPRECATED by RFC6350", - PermissibleValue(text="directory - DEPRECATED by RFC6350")) - setattr(cls, "ecmascript (OBSOLETED in favor of text/javascript)", - PermissibleValue(text="ecmascript (OBSOLETED in favor of text/javascript)")) - setattr(cls, "grammar-ref-list", - PermissibleValue(text="grammar-ref-list")) - setattr(cls, "jcr-cnd", - PermissibleValue(text="jcr-cnd")) - setattr(cls, "provenance-notation", - PermissibleValue(text="provenance-notation")) - setattr(cls, "prs.fallenstein.rst", - PermissibleValue(text="prs.fallenstein.rst")) - setattr(cls, "prs.lines.tag", - PermissibleValue(text="prs.lines.tag")) - setattr(cls, "prs.prop.logic", - PermissibleValue(text="prs.prop.logic")) - setattr(cls, "rfc822-headers", - PermissibleValue(text="rfc822-headers")) - setattr(cls, "rtp-enc-aescm128", - PermissibleValue(text="rtp-enc-aescm128")) - setattr(cls, "tab-separated-values", - PermissibleValue(text="tab-separated-values")) - setattr(cls, "uri-list", - PermissibleValue(text="uri-list")) - setattr(cls, "vnd.a", - PermissibleValue(text="vnd.a")) - setattr(cls, "vnd.abc", - PermissibleValue(text="vnd.abc")) - setattr(cls, "vnd.ascii-art", - PermissibleValue(text="vnd.ascii-art")) - setattr(cls, "vnd.curl", - PermissibleValue(text="vnd.curl")) - setattr(cls, "vnd.debian.copyright", - PermissibleValue(text="vnd.debian.copyright")) - setattr(cls, "vnd.DMClientScript", - PermissibleValue(text="vnd.DMClientScript")) - setattr(cls, "vnd.dvb.subtitle", - PermissibleValue(text="vnd.dvb.subtitle")) - setattr(cls, "vnd.esmertec.theme-descriptor", - PermissibleValue(text="vnd.esmertec.theme-descriptor")) - setattr(cls, "vnd.exchangeable", - PermissibleValue(text="vnd.exchangeable")) - setattr(cls, "vnd.familysearch.gedcom", - PermissibleValue(text="vnd.familysearch.gedcom")) - setattr(cls, "vnd.ficlab.flt", - PermissibleValue(text="vnd.ficlab.flt")) - setattr(cls, "vnd.fly", - PermissibleValue(text="vnd.fly")) - setattr(cls, "vnd.fmi.flexstor", - PermissibleValue(text="vnd.fmi.flexstor")) - setattr(cls, "vnd.gml", - PermissibleValue(text="vnd.gml")) - setattr(cls, "vnd.graphviz", - PermissibleValue(text="vnd.graphviz")) - setattr(cls, "vnd.hans", - PermissibleValue(text="vnd.hans")) - setattr(cls, "vnd.hgl", - PermissibleValue(text="vnd.hgl")) - setattr(cls, "vnd.in3d.3dml", - PermissibleValue(text="vnd.in3d.3dml")) - setattr(cls, "vnd.in3d.spot", - PermissibleValue(text="vnd.in3d.spot")) - setattr(cls, "vnd.IPTC.NewsML", - PermissibleValue(text="vnd.IPTC.NewsML")) - setattr(cls, "vnd.IPTC.NITF", - PermissibleValue(text="vnd.IPTC.NITF")) - setattr(cls, "vnd.latex-z", - PermissibleValue(text="vnd.latex-z")) - setattr(cls, "vnd.motorola.reflex", - PermissibleValue(text="vnd.motorola.reflex")) - setattr(cls, "vnd.ms-mediapackage", - PermissibleValue(text="vnd.ms-mediapackage")) - setattr(cls, "vnd.net2phone.commcenter.command", - PermissibleValue(text="vnd.net2phone.commcenter.command")) - setattr(cls, "vnd.radisys.msml-basic-layout", - PermissibleValue(text="vnd.radisys.msml-basic-layout")) - setattr(cls, "vnd.senx.warpscript", - PermissibleValue(text="vnd.senx.warpscript")) - setattr(cls, "vnd.si.uricatalogue", - PermissibleValue(text="vnd.si.uricatalogue")) - setattr(cls, "vnd.sun.j2me.app-descriptor", - PermissibleValue(text="vnd.sun.j2me.app-descriptor")) - setattr(cls, "vnd.sosi", - PermissibleValue(text="vnd.sosi")) - setattr(cls, "vnd.trolltech.linguist", - PermissibleValue(text="vnd.trolltech.linguist")) - setattr(cls, "vnd.wap.si", - PermissibleValue(text="vnd.wap.si")) - setattr(cls, "vnd.wap.sl", - PermissibleValue(text="vnd.wap.sl")) - setattr(cls, "vnd.wap.wml", - PermissibleValue(text="vnd.wap.wml")) - setattr(cls, "vnd.wap.wmlscript", - PermissibleValue(text="vnd.wap.wmlscript")) - setattr(cls, "xml-external-parsed-entity", - PermissibleValue(text="xml-external-parsed-entity")) - setattr(cls, "3gpdash-qoe-report+xml", - PermissibleValue(text="3gpdash-qoe-report+xml")) - setattr(cls, "3gppHal+json", - PermissibleValue(text="3gppHal+json")) - setattr(cls, "3gppHalForms+json", - PermissibleValue(text="3gppHalForms+json")) - setattr(cls, "3gpp-ims+xml", - PermissibleValue(text="3gpp-ims+xml")) - setattr(cls, "ace+cbor", - PermissibleValue(text="ace+cbor")) - setattr(cls, "ace+json", - PermissibleValue(text="ace+json")) - setattr(cls, "activity+json", - PermissibleValue(text="activity+json")) - setattr(cls, "aif+cbor", - PermissibleValue(text="aif+cbor")) - setattr(cls, "aif+json", - PermissibleValue(text="aif+json")) - setattr(cls, "alto-cdni+json", - PermissibleValue(text="alto-cdni+json")) - setattr(cls, "alto-cdnifilter+json", - PermissibleValue(text="alto-cdnifilter+json")) - setattr(cls, "alto-costmap+json", - PermissibleValue(text="alto-costmap+json")) - setattr(cls, "alto-costmapfilter+json", - PermissibleValue(text="alto-costmapfilter+json")) - setattr(cls, "alto-directory+json", - PermissibleValue(text="alto-directory+json")) - setattr(cls, "alto-endpointprop+json", - PermissibleValue(text="alto-endpointprop+json")) - setattr(cls, "alto-endpointpropparams+json", - PermissibleValue(text="alto-endpointpropparams+json")) - setattr(cls, "alto-endpointcost+json", - PermissibleValue(text="alto-endpointcost+json")) - setattr(cls, "alto-endpointcostparams+json", - PermissibleValue(text="alto-endpointcostparams+json")) - setattr(cls, "alto-error+json", - PermissibleValue(text="alto-error+json")) - setattr(cls, "alto-networkmapfilter+json", - PermissibleValue(text="alto-networkmapfilter+json")) - setattr(cls, "alto-networkmap+json", - PermissibleValue(text="alto-networkmap+json")) - setattr(cls, "alto-propmap+json", - PermissibleValue(text="alto-propmap+json")) - setattr(cls, "alto-propmapparams+json", - PermissibleValue(text="alto-propmapparams+json")) - setattr(cls, "alto-updatestreamcontrol+json", - PermissibleValue(text="alto-updatestreamcontrol+json")) - setattr(cls, "alto-updatestreamparams+json", - PermissibleValue(text="alto-updatestreamparams+json")) - setattr(cls, "andrew-inset", - PermissibleValue(text="andrew-inset")) - setattr(cls, "at+jwt", - PermissibleValue(text="at+jwt")) - setattr(cls, "atom+xml", - PermissibleValue(text="atom+xml")) - setattr(cls, "atomcat+xml", - PermissibleValue(text="atomcat+xml")) - setattr(cls, "atomdeleted+xml", - PermissibleValue(text="atomdeleted+xml")) - setattr(cls, "atomsvc+xml", - PermissibleValue(text="atomsvc+xml")) - setattr(cls, "atsc-dwd+xml", - PermissibleValue(text="atsc-dwd+xml")) - setattr(cls, "atsc-dynamic-event-message", - PermissibleValue(text="atsc-dynamic-event-message")) - setattr(cls, "atsc-held+xml", - PermissibleValue(text="atsc-held+xml")) - setattr(cls, "atsc-rdt+json", - PermissibleValue(text="atsc-rdt+json")) - setattr(cls, "atsc-rsat+xml", - PermissibleValue(text="atsc-rsat+xml")) - setattr(cls, "auth-policy+xml", - PermissibleValue(text="auth-policy+xml")) - setattr(cls, "automationml-aml+xml", - PermissibleValue(text="automationml-aml+xml")) - setattr(cls, "automationml-amlx+zip", - PermissibleValue(text="automationml-amlx+zip")) - setattr(cls, "bacnet-xdd+zip", - PermissibleValue(text="bacnet-xdd+zip")) - setattr(cls, "batch-SMTP", - PermissibleValue(text="batch-SMTP")) - setattr(cls, "beep+xml", - PermissibleValue(text="beep+xml")) - setattr(cls, "calendar+json", - PermissibleValue(text="calendar+json")) - setattr(cls, "calendar+xml", - PermissibleValue(text="calendar+xml")) - setattr(cls, "call-completion", - PermissibleValue(text="call-completion")) - setattr(cls, "CALS-1840", - PermissibleValue(text="CALS-1840")) - setattr(cls, "captive+json", - PermissibleValue(text="captive+json")) - setattr(cls, "cbor-seq", - PermissibleValue(text="cbor-seq")) - setattr(cls, "ccmp+xml", - PermissibleValue(text="ccmp+xml")) - setattr(cls, "ccxml+xml", - PermissibleValue(text="ccxml+xml")) - setattr(cls, "cda+xml", - PermissibleValue(text="cda+xml")) - setattr(cls, "CDFX+XML", - PermissibleValue(text="CDFX+XML")) - setattr(cls, "cdmi-capability", - PermissibleValue(text="cdmi-capability")) - setattr(cls, "cdmi-container", - PermissibleValue(text="cdmi-container")) - setattr(cls, "cdmi-domain", - PermissibleValue(text="cdmi-domain")) - setattr(cls, "cdmi-object", - PermissibleValue(text="cdmi-object")) - setattr(cls, "cdmi-queue", - PermissibleValue(text="cdmi-queue")) - setattr(cls, "cea-2018+xml", - PermissibleValue(text="cea-2018+xml")) - setattr(cls, "cellml+xml", - PermissibleValue(text="cellml+xml")) - setattr(cls, "cid-edhoc+cbor-seq", - PermissibleValue(text="cid-edhoc+cbor-seq")) - setattr(cls, "city+json", - PermissibleValue(text="city+json")) - setattr(cls, "clue_info+xml", - PermissibleValue(text="clue_info+xml")) - setattr(cls, "clue+xml", - PermissibleValue(text="clue+xml")) - setattr(cls, "cnrp+xml", - PermissibleValue(text="cnrp+xml")) - setattr(cls, "coap-group+json", - PermissibleValue(text="coap-group+json")) - setattr(cls, "coap-payload", - PermissibleValue(text="coap-payload")) - setattr(cls, "concise-problem-details+cbor", - PermissibleValue(text="concise-problem-details+cbor")) - setattr(cls, "conference-info+xml", - PermissibleValue(text="conference-info+xml")) - setattr(cls, "cpl+xml", - PermissibleValue(text="cpl+xml")) - setattr(cls, "cose-key", - PermissibleValue(text="cose-key")) - setattr(cls, "cose-key-set", - PermissibleValue(text="cose-key-set")) - setattr(cls, "cose-x509", - PermissibleValue(text="cose-x509")) - setattr(cls, "csta+xml", - PermissibleValue(text="csta+xml")) - setattr(cls, "CSTAdata+xml", - PermissibleValue(text="CSTAdata+xml")) - setattr(cls, "csvm+json", - PermissibleValue(text="csvm+json")) - setattr(cls, "cwl+json", - PermissibleValue(text="cwl+json")) - setattr(cls, "dash+xml", - PermissibleValue(text="dash+xml")) - setattr(cls, "dash-patch+xml", - PermissibleValue(text="dash-patch+xml")) - setattr(cls, "davmount+xml", - PermissibleValue(text="davmount+xml")) - setattr(cls, "dca-rft", - PermissibleValue(text="dca-rft")) - setattr(cls, "dec-dx", - PermissibleValue(text="dec-dx")) - setattr(cls, "dialog-info+xml", - PermissibleValue(text="dialog-info+xml")) - setattr(cls, "dicom+json", - PermissibleValue(text="dicom+json")) - setattr(cls, "dicom+xml", - PermissibleValue(text="dicom+xml")) - setattr(cls, "dns+json", - PermissibleValue(text="dns+json")) - setattr(cls, "dns-message", - PermissibleValue(text="dns-message")) - setattr(cls, "dots+cbor", - PermissibleValue(text="dots+cbor")) - setattr(cls, "dpop+jwt", - PermissibleValue(text="dpop+jwt")) - setattr(cls, "dskpp+xml", - PermissibleValue(text="dskpp+xml")) - setattr(cls, "dssc+der", - PermissibleValue(text="dssc+der")) - setattr(cls, "dssc+xml", - PermissibleValue(text="dssc+xml")) - setattr(cls, "edhoc+cbor-seq", - PermissibleValue(text="edhoc+cbor-seq")) - setattr(cls, "EDI-consent", - PermissibleValue(text="EDI-consent")) - setattr(cls, "EDI-X12", - PermissibleValue(text="EDI-X12")) - setattr(cls, "elm+json", - PermissibleValue(text="elm+json")) - setattr(cls, "elm+xml", - PermissibleValue(text="elm+xml")) - setattr(cls, "EmergencyCallData.cap+xml", - PermissibleValue(text="EmergencyCallData.cap+xml")) - setattr(cls, "EmergencyCallData.Comment+xml", - PermissibleValue(text="EmergencyCallData.Comment+xml")) - setattr(cls, "EmergencyCallData.Control+xml", - PermissibleValue(text="EmergencyCallData.Control+xml")) - setattr(cls, "EmergencyCallData.DeviceInfo+xml", - PermissibleValue(text="EmergencyCallData.DeviceInfo+xml")) - setattr(cls, "EmergencyCallData.eCall.MSD", - PermissibleValue(text="EmergencyCallData.eCall.MSD")) - setattr(cls, "EmergencyCallData.LegacyESN+json", - PermissibleValue(text="EmergencyCallData.LegacyESN+json")) - setattr(cls, "EmergencyCallData.ProviderInfo+xml", - PermissibleValue(text="EmergencyCallData.ProviderInfo+xml")) - setattr(cls, "EmergencyCallData.ServiceInfo+xml", - PermissibleValue(text="EmergencyCallData.ServiceInfo+xml")) - setattr(cls, "EmergencyCallData.SubscriberInfo+xml", - PermissibleValue(text="EmergencyCallData.SubscriberInfo+xml")) - setattr(cls, "EmergencyCallData.VEDS+xml", - PermissibleValue(text="EmergencyCallData.VEDS+xml")) - setattr(cls, "emma+xml", - PermissibleValue(text="emma+xml")) - setattr(cls, "emotionml+xml", - PermissibleValue(text="emotionml+xml")) - setattr(cls, "epp+xml", - PermissibleValue(text="epp+xml")) - setattr(cls, "epub+zip", - PermissibleValue(text="epub+zip")) - setattr(cls, "expect-ct-report+json", - PermissibleValue(text="expect-ct-report+json")) - setattr(cls, "fdt+xml", - PermissibleValue(text="fdt+xml")) - setattr(cls, "fhir+json", - PermissibleValue(text="fhir+json")) - setattr(cls, "fhir+xml", - PermissibleValue(text="fhir+xml")) - setattr(cls, "font-sfnt - DEPRECATED in favor of font/sfnt", - PermissibleValue(text="font-sfnt - DEPRECATED in favor of font/sfnt")) - setattr(cls, "font-tdpfr", - PermissibleValue(text="font-tdpfr")) - setattr(cls, "font-woff - DEPRECATED in favor of font/woff", - PermissibleValue(text="font-woff - DEPRECATED in favor of font/woff")) - setattr(cls, "framework-attributes+xml", - PermissibleValue(text="framework-attributes+xml")) - setattr(cls, "geo+json", - PermissibleValue(text="geo+json")) - setattr(cls, "geo+json-seq", - PermissibleValue(text="geo+json-seq")) - setattr(cls, "geopackage+sqlite3", - PermissibleValue(text="geopackage+sqlite3")) - setattr(cls, "geoxacml+xml", - PermissibleValue(text="geoxacml+xml")) - setattr(cls, "gltf-buffer", - PermissibleValue(text="gltf-buffer")) - setattr(cls, "gml+xml", - PermissibleValue(text="gml+xml")) - setattr(cls, "held+xml", - PermissibleValue(text="held+xml")) - setattr(cls, "hl7v2+xml", - PermissibleValue(text="hl7v2+xml")) - setattr(cls, "ibe-key-request+xml", - PermissibleValue(text="ibe-key-request+xml")) - setattr(cls, "ibe-pkg-reply+xml", - PermissibleValue(text="ibe-pkg-reply+xml")) - setattr(cls, "ibe-pp-data", - PermissibleValue(text="ibe-pp-data")) - setattr(cls, "im-iscomposing+xml", - PermissibleValue(text="im-iscomposing+xml")) - setattr(cls, "index.cmd", - PermissibleValue(text="index.cmd")) - setattr(cls, "index.obj", - PermissibleValue(text="index.obj")) - setattr(cls, "index.response", - PermissibleValue(text="index.response")) - setattr(cls, "index.vnd", - PermissibleValue(text="index.vnd")) - setattr(cls, "inkml+xml", - PermissibleValue(text="inkml+xml")) - setattr(cls, "its+xml", - PermissibleValue(text="its+xml")) - setattr(cls, "java-archive", - PermissibleValue(text="java-archive")) - setattr(cls, "javascript (OBSOLETED in favor of text/javascript)", - PermissibleValue(text="javascript (OBSOLETED in favor of text/javascript)")) - setattr(cls, "jf2feed+json", - PermissibleValue(text="jf2feed+json")) - setattr(cls, "jose+json", - PermissibleValue(text="jose+json")) - setattr(cls, "jrd+json", - PermissibleValue(text="jrd+json")) - setattr(cls, "jscalendar+json", - PermissibleValue(text="jscalendar+json")) - setattr(cls, "json-patch+json", - PermissibleValue(text="json-patch+json")) - setattr(cls, "json-seq", - PermissibleValue(text="json-seq")) - setattr(cls, "jwk+json", - PermissibleValue(text="jwk+json")) - setattr(cls, "jwk-set+json", - PermissibleValue(text="jwk-set+json")) - setattr(cls, "kpml-request+xml", - PermissibleValue(text="kpml-request+xml")) - setattr(cls, "kpml-response+xml", - PermissibleValue(text="kpml-response+xml")) - setattr(cls, "ld+json", - PermissibleValue(text="ld+json")) - setattr(cls, "lgr+xml", - PermissibleValue(text="lgr+xml")) - setattr(cls, "link-format", - PermissibleValue(text="link-format")) - setattr(cls, "linkset+json", - PermissibleValue(text="linkset+json")) - setattr(cls, "load-control+xml", - PermissibleValue(text="load-control+xml")) - setattr(cls, "logout+jwt", - PermissibleValue(text="logout+jwt")) - setattr(cls, "lost+xml", - PermissibleValue(text="lost+xml")) - setattr(cls, "lostsync+xml", - PermissibleValue(text="lostsync+xml")) - setattr(cls, "lpf+zip", - PermissibleValue(text="lpf+zip")) - setattr(cls, "mac-binhex40", - PermissibleValue(text="mac-binhex40")) - setattr(cls, "mads+xml", - PermissibleValue(text="mads+xml")) - setattr(cls, "manifest+json", - PermissibleValue(text="manifest+json")) - setattr(cls, "marcxml+xml", - PermissibleValue(text="marcxml+xml")) - setattr(cls, "mathml+xml", - PermissibleValue(text="mathml+xml")) - setattr(cls, "mathml-content+xml", - PermissibleValue(text="mathml-content+xml")) - setattr(cls, "mathml-presentation+xml", - PermissibleValue(text="mathml-presentation+xml")) - setattr(cls, "mbms-associated-procedure-description+xml", - PermissibleValue(text="mbms-associated-procedure-description+xml")) - setattr(cls, "mbms-deregister+xml", - PermissibleValue(text="mbms-deregister+xml")) - setattr(cls, "mbms-envelope+xml", - PermissibleValue(text="mbms-envelope+xml")) - setattr(cls, "mbms-msk-response+xml", - PermissibleValue(text="mbms-msk-response+xml")) - setattr(cls, "mbms-msk+xml", - PermissibleValue(text="mbms-msk+xml")) - setattr(cls, "mbms-protection-description+xml", - PermissibleValue(text="mbms-protection-description+xml")) - setattr(cls, "mbms-reception-report+xml", - PermissibleValue(text="mbms-reception-report+xml")) - setattr(cls, "mbms-register-response+xml", - PermissibleValue(text="mbms-register-response+xml")) - setattr(cls, "mbms-register+xml", - PermissibleValue(text="mbms-register+xml")) - setattr(cls, "mbms-schedule+xml", - PermissibleValue(text="mbms-schedule+xml")) - setattr(cls, "mbms-user-service-description+xml", - PermissibleValue(text="mbms-user-service-description+xml")) - setattr(cls, "media_control+xml", - PermissibleValue(text="media_control+xml")) - setattr(cls, "media-policy-dataset+xml", - PermissibleValue(text="media-policy-dataset+xml")) - setattr(cls, "mediaservercontrol+xml", - PermissibleValue(text="mediaservercontrol+xml")) - setattr(cls, "merge-patch+json", - PermissibleValue(text="merge-patch+json")) - setattr(cls, "metalink4+xml", - PermissibleValue(text="metalink4+xml")) - setattr(cls, "mets+xml", - PermissibleValue(text="mets+xml")) - setattr(cls, "missing-blocks+cbor-seq", - PermissibleValue(text="missing-blocks+cbor-seq")) - setattr(cls, "mmt-aei+xml", - PermissibleValue(text="mmt-aei+xml")) - setattr(cls, "mmt-usd+xml", - PermissibleValue(text="mmt-usd+xml")) - setattr(cls, "mods+xml", - PermissibleValue(text="mods+xml")) - setattr(cls, "moss-keys", - PermissibleValue(text="moss-keys")) - setattr(cls, "moss-signature", - PermissibleValue(text="moss-signature")) - setattr(cls, "mosskey-data", - PermissibleValue(text="mosskey-data")) - setattr(cls, "mosskey-request", - PermissibleValue(text="mosskey-request")) - setattr(cls, "mpeg4-generic", - PermissibleValue(text="mpeg4-generic")) - setattr(cls, "mpeg4-iod", - PermissibleValue(text="mpeg4-iod")) - setattr(cls, "mpeg4-iod-xmt", - PermissibleValue(text="mpeg4-iod-xmt")) - setattr(cls, "mrb-consumer+xml", - PermissibleValue(text="mrb-consumer+xml")) - setattr(cls, "mrb-publish+xml", - PermissibleValue(text="mrb-publish+xml")) - setattr(cls, "msc-ivr+xml", - PermissibleValue(text="msc-ivr+xml")) - setattr(cls, "msc-mixer+xml", - PermissibleValue(text="msc-mixer+xml")) - setattr(cls, "mud+json", - PermissibleValue(text="mud+json")) - setattr(cls, "multipart-core", - PermissibleValue(text="multipart-core")) - setattr(cls, "n-quads", - PermissibleValue(text="n-quads")) - setattr(cls, "n-triples", - PermissibleValue(text="n-triples")) - setattr(cls, "news-checkgroups", - PermissibleValue(text="news-checkgroups")) - setattr(cls, "news-groupinfo", - PermissibleValue(text="news-groupinfo")) - setattr(cls, "news-transmission", - PermissibleValue(text="news-transmission")) - setattr(cls, "nlsml+xml", - PermissibleValue(text="nlsml+xml")) - setattr(cls, "oauth-authz-req+jwt", - PermissibleValue(text="oauth-authz-req+jwt")) - setattr(cls, "oblivious-dns-message", - PermissibleValue(text="oblivious-dns-message")) - setattr(cls, "ocsp-request", - PermissibleValue(text="ocsp-request")) - setattr(cls, "ocsp-response", - PermissibleValue(text="ocsp-response")) - setattr(cls, "octet-stream", - PermissibleValue(text="octet-stream")) - setattr(cls, "odm+xml", - PermissibleValue(text="odm+xml")) - setattr(cls, "oebps-package+xml", - PermissibleValue(text="oebps-package+xml")) - setattr(cls, "ohttp-keys", - PermissibleValue(text="ohttp-keys")) - setattr(cls, "opc-nodeset+xml", - PermissibleValue(text="opc-nodeset+xml")) - setattr(cls, "p21+zip", - PermissibleValue(text="p21+zip")) - setattr(cls, "p2p-overlay+xml", - PermissibleValue(text="p2p-overlay+xml")) - setattr(cls, "patch-ops-error+xml", - PermissibleValue(text="patch-ops-error+xml")) - setattr(cls, "pem-certificate-chain", - PermissibleValue(text="pem-certificate-chain")) - setattr(cls, "pgp-encrypted", - PermissibleValue(text="pgp-encrypted")) - setattr(cls, "pgp-keys", - PermissibleValue(text="pgp-keys")) - setattr(cls, "pgp-signature", - PermissibleValue(text="pgp-signature")) - setattr(cls, "pidf-diff+xml", - PermissibleValue(text="pidf-diff+xml")) - setattr(cls, "pidf+xml", - PermissibleValue(text="pidf+xml")) - setattr(cls, "pkcs7-mime", - PermissibleValue(text="pkcs7-mime")) - setattr(cls, "pkcs7-signature", - PermissibleValue(text="pkcs7-signature")) - setattr(cls, "pkcs8-encrypted", - PermissibleValue(text="pkcs8-encrypted")) - setattr(cls, "pkix-attr-cert", - PermissibleValue(text="pkix-attr-cert")) - setattr(cls, "pkix-cert", - PermissibleValue(text="pkix-cert")) - setattr(cls, "pkix-crl", - PermissibleValue(text="pkix-crl")) - setattr(cls, "pkix-pkipath", - PermissibleValue(text="pkix-pkipath")) - setattr(cls, "pls+xml", - PermissibleValue(text="pls+xml")) - setattr(cls, "poc-settings+xml", - PermissibleValue(text="poc-settings+xml")) - setattr(cls, "ppsp-tracker+json", - PermissibleValue(text="ppsp-tracker+json")) - setattr(cls, "problem+json", - PermissibleValue(text="problem+json")) - setattr(cls, "problem+xml", - PermissibleValue(text="problem+xml")) - setattr(cls, "provenance+xml", - PermissibleValue(text="provenance+xml")) - setattr(cls, "prs.alvestrand.titrax-sheet", - PermissibleValue(text="prs.alvestrand.titrax-sheet")) - setattr(cls, "prs.cww", - PermissibleValue(text="prs.cww")) - setattr(cls, "prs.cyn", - PermissibleValue(text="prs.cyn")) - setattr(cls, "prs.hpub+zip", - PermissibleValue(text="prs.hpub+zip")) - setattr(cls, "prs.implied-document+xml", - PermissibleValue(text="prs.implied-document+xml")) - setattr(cls, "prs.implied-executable", - PermissibleValue(text="prs.implied-executable")) - setattr(cls, "prs.implied-structure", - PermissibleValue(text="prs.implied-structure")) - setattr(cls, "prs.nprend", - PermissibleValue(text="prs.nprend")) - setattr(cls, "prs.plucker", - PermissibleValue(text="prs.plucker")) - setattr(cls, "prs.rdf-xml-crypt", - PermissibleValue(text="prs.rdf-xml-crypt")) - setattr(cls, "prs.vcfbzip2", - PermissibleValue(text="prs.vcfbzip2")) - setattr(cls, "prs.xsf+xml", - PermissibleValue(text="prs.xsf+xml")) - setattr(cls, "pskc+xml", - PermissibleValue(text="pskc+xml")) - setattr(cls, "pvd+json", - PermissibleValue(text="pvd+json")) - setattr(cls, "rdf+xml", - PermissibleValue(text="rdf+xml")) - setattr(cls, "route-apd+xml", - PermissibleValue(text="route-apd+xml")) - setattr(cls, "route-s-tsid+xml", - PermissibleValue(text="route-s-tsid+xml")) - setattr(cls, "route-usd+xml", - PermissibleValue(text="route-usd+xml")) - setattr(cls, "rdap+json", - PermissibleValue(text="rdap+json")) - setattr(cls, "reginfo+xml", - PermissibleValue(text="reginfo+xml")) - setattr(cls, "relax-ng-compact-syntax", - PermissibleValue(text="relax-ng-compact-syntax")) - setattr(cls, "remote-printing (OBSOLETE)", - PermissibleValue(text="remote-printing (OBSOLETE)")) - setattr(cls, "reputon+json", - PermissibleValue(text="reputon+json")) - setattr(cls, "resource-lists-diff+xml", - PermissibleValue(text="resource-lists-diff+xml")) - setattr(cls, "resource-lists+xml", - PermissibleValue(text="resource-lists+xml")) - setattr(cls, "rfc+xml", - PermissibleValue(text="rfc+xml")) - setattr(cls, "rlmi+xml", - PermissibleValue(text="rlmi+xml")) - setattr(cls, "rls-services+xml", - PermissibleValue(text="rls-services+xml")) - setattr(cls, "rpki-checklist", - PermissibleValue(text="rpki-checklist")) - setattr(cls, "rpki-ghostbusters", - PermissibleValue(text="rpki-ghostbusters")) - setattr(cls, "rpki-manifest", - PermissibleValue(text="rpki-manifest")) - setattr(cls, "rpki-publication", - PermissibleValue(text="rpki-publication")) - setattr(cls, "rpki-roa", - PermissibleValue(text="rpki-roa")) - setattr(cls, "rpki-updown", - PermissibleValue(text="rpki-updown")) - setattr(cls, "samlassertion+xml", - PermissibleValue(text="samlassertion+xml")) - setattr(cls, "samlmetadata+xml", - PermissibleValue(text="samlmetadata+xml")) - setattr(cls, "sarif-external-properties+json", - PermissibleValue(text="sarif-external-properties+json")) - setattr(cls, "sarif+json", - PermissibleValue(text="sarif+json")) - setattr(cls, "sbml+xml", - PermissibleValue(text="sbml+xml")) - setattr(cls, "scaip+xml", - PermissibleValue(text="scaip+xml")) - setattr(cls, "scim+json", - PermissibleValue(text="scim+json")) - setattr(cls, "scvp-cv-request", - PermissibleValue(text="scvp-cv-request")) - setattr(cls, "scvp-cv-response", - PermissibleValue(text="scvp-cv-response")) - setattr(cls, "scvp-vp-request", - PermissibleValue(text="scvp-vp-request")) - setattr(cls, "scvp-vp-response", - PermissibleValue(text="scvp-vp-response")) - setattr(cls, "secevent+jwt", - PermissibleValue(text="secevent+jwt")) - setattr(cls, "senml-etch+cbor", - PermissibleValue(text="senml-etch+cbor")) - setattr(cls, "senml-etch+json", - PermissibleValue(text="senml-etch+json")) - setattr(cls, "senml-exi", - PermissibleValue(text="senml-exi")) - setattr(cls, "senml+cbor", - PermissibleValue(text="senml+cbor")) - setattr(cls, "senml+json", - PermissibleValue(text="senml+json")) - setattr(cls, "senml+xml", - PermissibleValue(text="senml+xml")) - setattr(cls, "sensml-exi", - PermissibleValue(text="sensml-exi")) - setattr(cls, "sensml+cbor", - PermissibleValue(text="sensml+cbor")) - setattr(cls, "sensml+json", - PermissibleValue(text="sensml+json")) - setattr(cls, "sensml+xml", - PermissibleValue(text="sensml+xml")) - setattr(cls, "sep-exi", - PermissibleValue(text="sep-exi")) - setattr(cls, "sep+xml", - PermissibleValue(text="sep+xml")) - setattr(cls, "session-info", - PermissibleValue(text="session-info")) - setattr(cls, "set-payment", - PermissibleValue(text="set-payment")) - setattr(cls, "set-payment-initiation", - PermissibleValue(text="set-payment-initiation")) - setattr(cls, "set-registration", - PermissibleValue(text="set-registration")) - setattr(cls, "set-registration-initiation", - PermissibleValue(text="set-registration-initiation")) - setattr(cls, "sgml-open-catalog", - PermissibleValue(text="sgml-open-catalog")) - setattr(cls, "shf+xml", - PermissibleValue(text="shf+xml")) - setattr(cls, "simple-filter+xml", - PermissibleValue(text="simple-filter+xml")) - setattr(cls, "simple-message-summary", - PermissibleValue(text="simple-message-summary")) - setattr(cls, "smil (OBSOLETED in favor of application/smil+xml)", - PermissibleValue(text="smil (OBSOLETED in favor of application/smil+xml)")) - setattr(cls, "smil+xml", - PermissibleValue(text="smil+xml")) - setattr(cls, "soap+fastinfoset", - PermissibleValue(text="soap+fastinfoset")) - setattr(cls, "soap+xml", - PermissibleValue(text="soap+xml")) - setattr(cls, "sparql-query", - PermissibleValue(text="sparql-query")) - setattr(cls, "spdx+json", - PermissibleValue(text="spdx+json")) - setattr(cls, "sparql-results+xml", - PermissibleValue(text="sparql-results+xml")) - setattr(cls, "spirits-event+xml", - PermissibleValue(text="spirits-event+xml")) - setattr(cls, "srgs+xml", - PermissibleValue(text="srgs+xml")) - setattr(cls, "sru+xml", - PermissibleValue(text="sru+xml")) - setattr(cls, "ssml+xml", - PermissibleValue(text="ssml+xml")) - setattr(cls, "stix+json", - PermissibleValue(text="stix+json")) - setattr(cls, "swid+cbor", - PermissibleValue(text="swid+cbor")) - setattr(cls, "swid+xml", - PermissibleValue(text="swid+xml")) - setattr(cls, "tamp-apex-update", - PermissibleValue(text="tamp-apex-update")) - setattr(cls, "tamp-apex-update-confirm", - PermissibleValue(text="tamp-apex-update-confirm")) - setattr(cls, "tamp-community-update", - PermissibleValue(text="tamp-community-update")) - setattr(cls, "tamp-community-update-confirm", - PermissibleValue(text="tamp-community-update-confirm")) - setattr(cls, "tamp-error", - PermissibleValue(text="tamp-error")) - setattr(cls, "tamp-sequence-adjust", - PermissibleValue(text="tamp-sequence-adjust")) - setattr(cls, "tamp-sequence-adjust-confirm", - PermissibleValue(text="tamp-sequence-adjust-confirm")) - setattr(cls, "tamp-status-query", - PermissibleValue(text="tamp-status-query")) - setattr(cls, "tamp-status-response", - PermissibleValue(text="tamp-status-response")) - setattr(cls, "tamp-update", - PermissibleValue(text="tamp-update")) - setattr(cls, "tamp-update-confirm", - PermissibleValue(text="tamp-update-confirm")) - setattr(cls, "taxii+json", - PermissibleValue(text="taxii+json")) - setattr(cls, "td+json", - PermissibleValue(text="td+json")) - setattr(cls, "tei+xml", - PermissibleValue(text="tei+xml")) - setattr(cls, "thraud+xml", - PermissibleValue(text="thraud+xml")) - setattr(cls, "timestamp-query", - PermissibleValue(text="timestamp-query")) - setattr(cls, "timestamp-reply", - PermissibleValue(text="timestamp-reply")) - setattr(cls, "timestamped-data", - PermissibleValue(text="timestamped-data")) - setattr(cls, "tlsrpt+gzip", - PermissibleValue(text="tlsrpt+gzip")) - setattr(cls, "tlsrpt+json", - PermissibleValue(text="tlsrpt+json")) - setattr(cls, "tm+json", - PermissibleValue(text="tm+json")) - setattr(cls, "token-introspection+jwt", - PermissibleValue(text="token-introspection+jwt")) - setattr(cls, "trickle-ice-sdpfrag", - PermissibleValue(text="trickle-ice-sdpfrag")) - setattr(cls, "ttml+xml", - PermissibleValue(text="ttml+xml")) - setattr(cls, "tve-trigger", - PermissibleValue(text="tve-trigger")) - setattr(cls, "tzif-leap", - PermissibleValue(text="tzif-leap")) - setattr(cls, "urc-grpsheet+xml", - PermissibleValue(text="urc-grpsheet+xml")) - setattr(cls, "urc-ressheet+xml", - PermissibleValue(text="urc-ressheet+xml")) - setattr(cls, "urc-targetdesc+xml", - PermissibleValue(text="urc-targetdesc+xml")) - setattr(cls, "urc-uisocketdesc+xml", - PermissibleValue(text="urc-uisocketdesc+xml")) - setattr(cls, "vcard+json", - PermissibleValue(text="vcard+json")) - setattr(cls, "vcard+xml", - PermissibleValue(text="vcard+xml")) - setattr(cls, "vnd.1000minds.decision-model+xml", - PermissibleValue(text="vnd.1000minds.decision-model+xml")) - setattr(cls, "vnd.1ob", - PermissibleValue(text="vnd.1ob")) - setattr(cls, "vnd.3gpp.5gnas", - PermissibleValue(text="vnd.3gpp.5gnas")) - setattr(cls, "vnd.3gpp.access-transfer-events+xml", - PermissibleValue(text="vnd.3gpp.access-transfer-events+xml")) - setattr(cls, "vnd.3gpp.bsf+xml", - PermissibleValue(text="vnd.3gpp.bsf+xml")) - setattr(cls, "vnd.3gpp.crs+xml", - PermissibleValue(text="vnd.3gpp.crs+xml")) - setattr(cls, "vnd.3gpp.current-location-discovery+xml", - PermissibleValue(text="vnd.3gpp.current-location-discovery+xml")) - setattr(cls, "vnd.3gpp.GMOP+xml", - PermissibleValue(text="vnd.3gpp.GMOP+xml")) - setattr(cls, "vnd.3gpp.gtpc", - PermissibleValue(text="vnd.3gpp.gtpc")) - setattr(cls, "vnd.3gpp.interworking-data", - PermissibleValue(text="vnd.3gpp.interworking-data")) - setattr(cls, "vnd.3gpp.lpp", - PermissibleValue(text="vnd.3gpp.lpp")) - setattr(cls, "vnd.3gpp.mc-signalling-ear", - PermissibleValue(text="vnd.3gpp.mc-signalling-ear")) - setattr(cls, "vnd.3gpp.mcdata-affiliation-command+xml", - PermissibleValue(text="vnd.3gpp.mcdata-affiliation-command+xml")) - setattr(cls, "vnd.3gpp.mcdata-info+xml", - PermissibleValue(text="vnd.3gpp.mcdata-info+xml")) - setattr(cls, "vnd.3gpp.mcdata-msgstore-ctrl-request+xml", - PermissibleValue(text="vnd.3gpp.mcdata-msgstore-ctrl-request+xml")) - setattr(cls, "vnd.3gpp.mcdata-payload", - PermissibleValue(text="vnd.3gpp.mcdata-payload")) - setattr(cls, "vnd.3gpp.mcdata-regroup+xml", - PermissibleValue(text="vnd.3gpp.mcdata-regroup+xml")) - setattr(cls, "vnd.3gpp.mcdata-service-config+xml", - PermissibleValue(text="vnd.3gpp.mcdata-service-config+xml")) - setattr(cls, "vnd.3gpp.mcdata-signalling", - PermissibleValue(text="vnd.3gpp.mcdata-signalling")) - setattr(cls, "vnd.3gpp.mcdata-ue-config+xml", - PermissibleValue(text="vnd.3gpp.mcdata-ue-config+xml")) - setattr(cls, "vnd.3gpp.mcdata-user-profile+xml", - PermissibleValue(text="vnd.3gpp.mcdata-user-profile+xml")) - setattr(cls, "vnd.3gpp.mcptt-affiliation-command+xml", - PermissibleValue(text="vnd.3gpp.mcptt-affiliation-command+xml")) - setattr(cls, "vnd.3gpp.mcptt-floor-request+xml", - PermissibleValue(text="vnd.3gpp.mcptt-floor-request+xml")) - setattr(cls, "vnd.3gpp.mcptt-info+xml", - PermissibleValue(text="vnd.3gpp.mcptt-info+xml")) - setattr(cls, "vnd.3gpp.mcptt-location-info+xml", - PermissibleValue(text="vnd.3gpp.mcptt-location-info+xml")) - setattr(cls, "vnd.3gpp.mcptt-mbms-usage-info+xml", - PermissibleValue(text="vnd.3gpp.mcptt-mbms-usage-info+xml")) - setattr(cls, "vnd.3gpp.mcptt-regroup+xml", - PermissibleValue(text="vnd.3gpp.mcptt-regroup+xml")) - setattr(cls, "vnd.3gpp.mcptt-service-config+xml", - PermissibleValue(text="vnd.3gpp.mcptt-service-config+xml")) - setattr(cls, "vnd.3gpp.mcptt-signed+xml", - PermissibleValue(text="vnd.3gpp.mcptt-signed+xml")) - setattr(cls, "vnd.3gpp.mcptt-ue-config+xml", - PermissibleValue(text="vnd.3gpp.mcptt-ue-config+xml")) - setattr(cls, "vnd.3gpp.mcptt-ue-init-config+xml", - PermissibleValue(text="vnd.3gpp.mcptt-ue-init-config+xml")) - setattr(cls, "vnd.3gpp.mcptt-user-profile+xml", - PermissibleValue(text="vnd.3gpp.mcptt-user-profile+xml")) - setattr(cls, "vnd.3gpp.mcvideo-affiliation-command+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-affiliation-command+xml")) - setattr(cls, "vnd.3gpp.mcvideo-affiliation-info+xml (OBSOLETED in favor of application/vnd.3gpp.mcvideo-info+xml)", - PermissibleValue(text="vnd.3gpp.mcvideo-affiliation-info+xml (OBSOLETED in favor of application/vnd.3gpp.mcvideo-info+xml)")) - setattr(cls, "vnd.3gpp.mcvideo-info+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-info+xml")) - setattr(cls, "vnd.3gpp.mcvideo-location-info+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-location-info+xml")) - setattr(cls, "vnd.3gpp.mcvideo-mbms-usage-info+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-mbms-usage-info+xml")) - setattr(cls, "vnd.3gpp.mcvideo-regroup+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-regroup+xml")) - setattr(cls, "vnd.3gpp.mcvideo-service-config+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-service-config+xml")) - setattr(cls, "vnd.3gpp.mcvideo-transmission-request+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-transmission-request+xml")) - setattr(cls, "vnd.3gpp.mcvideo-ue-config+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-ue-config+xml")) - setattr(cls, "vnd.3gpp.mcvideo-user-profile+xml", - PermissibleValue(text="vnd.3gpp.mcvideo-user-profile+xml")) - setattr(cls, "vnd.3gpp.mid-call+xml", - PermissibleValue(text="vnd.3gpp.mid-call+xml")) - setattr(cls, "vnd.3gpp.ngap", - PermissibleValue(text="vnd.3gpp.ngap")) - setattr(cls, "vnd.3gpp.pfcp", - PermissibleValue(text="vnd.3gpp.pfcp")) - setattr(cls, "vnd.3gpp.pic-bw-large", - PermissibleValue(text="vnd.3gpp.pic-bw-large")) - setattr(cls, "vnd.3gpp.pic-bw-small", - PermissibleValue(text="vnd.3gpp.pic-bw-small")) - setattr(cls, "vnd.3gpp.pic-bw-var", - PermissibleValue(text="vnd.3gpp.pic-bw-var")) - setattr(cls, "vnd.3gpp-prose-pc3a+xml", - PermissibleValue(text="vnd.3gpp-prose-pc3a+xml")) - setattr(cls, "vnd.3gpp-prose-pc3ach+xml", - PermissibleValue(text="vnd.3gpp-prose-pc3ach+xml")) - setattr(cls, "vnd.3gpp-prose-pc3ch+xml", - PermissibleValue(text="vnd.3gpp-prose-pc3ch+xml")) - setattr(cls, "vnd.3gpp-prose-pc8+xml", - PermissibleValue(text="vnd.3gpp-prose-pc8+xml")) - setattr(cls, "vnd.3gpp-prose+xml", - PermissibleValue(text="vnd.3gpp-prose+xml")) - setattr(cls, "vnd.3gpp.s1ap", - PermissibleValue(text="vnd.3gpp.s1ap")) - setattr(cls, "vnd.3gpp.seal-group-doc+xml", - PermissibleValue(text="vnd.3gpp.seal-group-doc+xml")) - setattr(cls, "vnd.3gpp.seal-info+xml", - PermissibleValue(text="vnd.3gpp.seal-info+xml")) - setattr(cls, "vnd.3gpp.seal-location-info+xml", - PermissibleValue(text="vnd.3gpp.seal-location-info+xml")) - setattr(cls, "vnd.3gpp.seal-mbms-usage-info+xml", - PermissibleValue(text="vnd.3gpp.seal-mbms-usage-info+xml")) - setattr(cls, "vnd.3gpp.seal-network-QoS-management-info+xml", - PermissibleValue(text="vnd.3gpp.seal-network-QoS-management-info+xml")) - setattr(cls, "vnd.3gpp.seal-ue-config-info+xml", - PermissibleValue(text="vnd.3gpp.seal-ue-config-info+xml")) - setattr(cls, "vnd.3gpp.seal-unicast-info+xml", - PermissibleValue(text="vnd.3gpp.seal-unicast-info+xml")) - setattr(cls, "vnd.3gpp.seal-user-profile-info+xml", - PermissibleValue(text="vnd.3gpp.seal-user-profile-info+xml")) - setattr(cls, "vnd.3gpp.sms", - PermissibleValue(text="vnd.3gpp.sms")) - setattr(cls, "vnd.3gpp.sms+xml", - PermissibleValue(text="vnd.3gpp.sms+xml")) - setattr(cls, "vnd.3gpp.srvcc-ext+xml", - PermissibleValue(text="vnd.3gpp.srvcc-ext+xml")) - setattr(cls, "vnd.3gpp.SRVCC-info+xml", - PermissibleValue(text="vnd.3gpp.SRVCC-info+xml")) - setattr(cls, "vnd.3gpp.state-and-event-info+xml", - PermissibleValue(text="vnd.3gpp.state-and-event-info+xml")) - setattr(cls, "vnd.3gpp.ussd+xml", - PermissibleValue(text="vnd.3gpp.ussd+xml")) - setattr(cls, "vnd.3gpp.vae-info+xml", - PermissibleValue(text="vnd.3gpp.vae-info+xml")) - setattr(cls, "vnd.3gpp-v2x-local-service-information", - PermissibleValue(text="vnd.3gpp-v2x-local-service-information")) - setattr(cls, "vnd.3gpp2.bcmcsinfo+xml", - PermissibleValue(text="vnd.3gpp2.bcmcsinfo+xml")) - setattr(cls, "vnd.3gpp2.sms", - PermissibleValue(text="vnd.3gpp2.sms")) - setattr(cls, "vnd.3gpp2.tcap", - PermissibleValue(text="vnd.3gpp2.tcap")) - setattr(cls, "vnd.3gpp.v2x", - PermissibleValue(text="vnd.3gpp.v2x")) - setattr(cls, "vnd.3lightssoftware.imagescal", - PermissibleValue(text="vnd.3lightssoftware.imagescal")) - setattr(cls, "vnd.3M.Post-it-Notes", - PermissibleValue(text="vnd.3M.Post-it-Notes")) - setattr(cls, "vnd.accpac.simply.aso", - PermissibleValue(text="vnd.accpac.simply.aso")) - setattr(cls, "vnd.accpac.simply.imp", - PermissibleValue(text="vnd.accpac.simply.imp")) - setattr(cls, "vnd.acm.addressxfer+json", - PermissibleValue(text="vnd.acm.addressxfer+json")) - setattr(cls, "vnd.acm.chatbot+json", - PermissibleValue(text="vnd.acm.chatbot+json")) - setattr(cls, "vnd.acucobol", - PermissibleValue(text="vnd.acucobol")) - setattr(cls, "vnd.acucorp", - PermissibleValue(text="vnd.acucorp")) - setattr(cls, "vnd.adobe.flash.movie", - PermissibleValue(text="vnd.adobe.flash.movie")) - setattr(cls, "vnd.adobe.formscentral.fcdt", - PermissibleValue(text="vnd.adobe.formscentral.fcdt")) - setattr(cls, "vnd.adobe.fxp", - PermissibleValue(text="vnd.adobe.fxp")) - setattr(cls, "vnd.adobe.partial-upload", - PermissibleValue(text="vnd.adobe.partial-upload")) - setattr(cls, "vnd.adobe.xdp+xml", - PermissibleValue(text="vnd.adobe.xdp+xml")) - setattr(cls, "vnd.aether.imp", - PermissibleValue(text="vnd.aether.imp")) - setattr(cls, "vnd.afpc.afplinedata", - PermissibleValue(text="vnd.afpc.afplinedata")) - setattr(cls, "vnd.afpc.afplinedata-pagedef", - PermissibleValue(text="vnd.afpc.afplinedata-pagedef")) - setattr(cls, "vnd.afpc.cmoca-cmresource", - PermissibleValue(text="vnd.afpc.cmoca-cmresource")) - setattr(cls, "vnd.afpc.foca-charset", - PermissibleValue(text="vnd.afpc.foca-charset")) - setattr(cls, "vnd.afpc.foca-codedfont", - PermissibleValue(text="vnd.afpc.foca-codedfont")) - setattr(cls, "vnd.afpc.foca-codepage", - PermissibleValue(text="vnd.afpc.foca-codepage")) - setattr(cls, "vnd.afpc.modca", - PermissibleValue(text="vnd.afpc.modca")) - setattr(cls, "vnd.afpc.modca-cmtable", - PermissibleValue(text="vnd.afpc.modca-cmtable")) - setattr(cls, "vnd.afpc.modca-formdef", - PermissibleValue(text="vnd.afpc.modca-formdef")) - setattr(cls, "vnd.afpc.modca-mediummap", - PermissibleValue(text="vnd.afpc.modca-mediummap")) - setattr(cls, "vnd.afpc.modca-objectcontainer", - PermissibleValue(text="vnd.afpc.modca-objectcontainer")) - setattr(cls, "vnd.afpc.modca-overlay", - PermissibleValue(text="vnd.afpc.modca-overlay")) - setattr(cls, "vnd.afpc.modca-pagesegment", - PermissibleValue(text="vnd.afpc.modca-pagesegment")) - setattr(cls, "vnd.age", - PermissibleValue(text="vnd.age")) - setattr(cls, "vnd.ah-barcode", - PermissibleValue(text="vnd.ah-barcode")) - setattr(cls, "vnd.ahead.space", - PermissibleValue(text="vnd.ahead.space")) - setattr(cls, "vnd.airzip.filesecure.azf", - PermissibleValue(text="vnd.airzip.filesecure.azf")) - setattr(cls, "vnd.airzip.filesecure.azs", - PermissibleValue(text="vnd.airzip.filesecure.azs")) - setattr(cls, "vnd.amadeus+json", - PermissibleValue(text="vnd.amadeus+json")) - setattr(cls, "vnd.amazon.mobi8-ebook", - PermissibleValue(text="vnd.amazon.mobi8-ebook")) - setattr(cls, "vnd.americandynamics.acc", - PermissibleValue(text="vnd.americandynamics.acc")) - setattr(cls, "vnd.amiga.ami", - PermissibleValue(text="vnd.amiga.ami")) - setattr(cls, "vnd.amundsen.maze+xml", - PermissibleValue(text="vnd.amundsen.maze+xml")) - setattr(cls, "vnd.android.ota", - PermissibleValue(text="vnd.android.ota")) - setattr(cls, "vnd.anki", - PermissibleValue(text="vnd.anki")) - setattr(cls, "vnd.anser-web-certificate-issue-initiation", - PermissibleValue(text="vnd.anser-web-certificate-issue-initiation")) - setattr(cls, "vnd.antix.game-component", - PermissibleValue(text="vnd.antix.game-component")) - setattr(cls, "vnd.apache.arrow.file", - PermissibleValue(text="vnd.apache.arrow.file")) - setattr(cls, "vnd.apache.arrow.stream", - PermissibleValue(text="vnd.apache.arrow.stream")) - setattr(cls, "vnd.apache.thrift.binary", - PermissibleValue(text="vnd.apache.thrift.binary")) - setattr(cls, "vnd.apache.thrift.compact", - PermissibleValue(text="vnd.apache.thrift.compact")) - setattr(cls, "vnd.apache.thrift.json", - PermissibleValue(text="vnd.apache.thrift.json")) - setattr(cls, "vnd.apexlang", - PermissibleValue(text="vnd.apexlang")) - setattr(cls, "vnd.api+json", - PermissibleValue(text="vnd.api+json")) - setattr(cls, "vnd.aplextor.warrp+json", - PermissibleValue(text="vnd.aplextor.warrp+json")) - setattr(cls, "vnd.apothekende.reservation+json", - PermissibleValue(text="vnd.apothekende.reservation+json")) - setattr(cls, "vnd.apple.installer+xml", - PermissibleValue(text="vnd.apple.installer+xml")) - setattr(cls, "vnd.apple.keynote", - PermissibleValue(text="vnd.apple.keynote")) - setattr(cls, "vnd.apple.mpegurl", - PermissibleValue(text="vnd.apple.mpegurl")) - setattr(cls, "vnd.apple.numbers", - PermissibleValue(text="vnd.apple.numbers")) - setattr(cls, "vnd.apple.pages", - PermissibleValue(text="vnd.apple.pages")) - setattr(cls, "vnd.arastra.swi (OBSOLETED in favor of application/vnd.aristanetworks.swi)", - PermissibleValue(text="vnd.arastra.swi (OBSOLETED in favor of application/vnd.aristanetworks.swi)")) - setattr(cls, "vnd.aristanetworks.swi", - PermissibleValue(text="vnd.aristanetworks.swi")) - setattr(cls, "vnd.artisan+json", - PermissibleValue(text="vnd.artisan+json")) - setattr(cls, "vnd.artsquare", - PermissibleValue(text="vnd.artsquare")) - setattr(cls, "vnd.astraea-software.iota", - PermissibleValue(text="vnd.astraea-software.iota")) - setattr(cls, "vnd.audiograph", - PermissibleValue(text="vnd.audiograph")) - setattr(cls, "vnd.autopackage", - PermissibleValue(text="vnd.autopackage")) - setattr(cls, "vnd.avalon+json", - PermissibleValue(text="vnd.avalon+json")) - setattr(cls, "vnd.avistar+xml", - PermissibleValue(text="vnd.avistar+xml")) - setattr(cls, "vnd.balsamiq.bmml+xml", - PermissibleValue(text="vnd.balsamiq.bmml+xml")) - setattr(cls, "vnd.banana-accounting", - PermissibleValue(text="vnd.banana-accounting")) - setattr(cls, "vnd.bbf.usp.error", - PermissibleValue(text="vnd.bbf.usp.error")) - setattr(cls, "vnd.bbf.usp.msg", - PermissibleValue(text="vnd.bbf.usp.msg")) - setattr(cls, "vnd.bbf.usp.msg+json", - PermissibleValue(text="vnd.bbf.usp.msg+json")) - setattr(cls, "vnd.balsamiq.bmpr", - PermissibleValue(text="vnd.balsamiq.bmpr")) - setattr(cls, "vnd.bekitzur-stech+json", - PermissibleValue(text="vnd.bekitzur-stech+json")) - setattr(cls, "vnd.belightsoft.lhzd+zip", - PermissibleValue(text="vnd.belightsoft.lhzd+zip")) - setattr(cls, "vnd.belightsoft.lhzl+zip", - PermissibleValue(text="vnd.belightsoft.lhzl+zip")) - setattr(cls, "vnd.bint.med-content", - PermissibleValue(text="vnd.bint.med-content")) - setattr(cls, "vnd.biopax.rdf+xml", - PermissibleValue(text="vnd.biopax.rdf+xml")) - setattr(cls, "vnd.blink-idb-value-wrapper", - PermissibleValue(text="vnd.blink-idb-value-wrapper")) - setattr(cls, "vnd.blueice.multipass", - PermissibleValue(text="vnd.blueice.multipass")) - setattr(cls, "vnd.bluetooth.ep.oob", - PermissibleValue(text="vnd.bluetooth.ep.oob")) - setattr(cls, "vnd.bluetooth.le.oob", - PermissibleValue(text="vnd.bluetooth.le.oob")) - setattr(cls, "vnd.bmi", - PermissibleValue(text="vnd.bmi")) - setattr(cls, "vnd.bpf", - PermissibleValue(text="vnd.bpf")) - setattr(cls, "vnd.bpf3", - PermissibleValue(text="vnd.bpf3")) - setattr(cls, "vnd.businessobjects", - PermissibleValue(text="vnd.businessobjects")) - setattr(cls, "vnd.byu.uapi+json", - PermissibleValue(text="vnd.byu.uapi+json")) - setattr(cls, "vnd.cab-jscript", - PermissibleValue(text="vnd.cab-jscript")) - setattr(cls, "vnd.canon-cpdl", - PermissibleValue(text="vnd.canon-cpdl")) - setattr(cls, "vnd.canon-lips", - PermissibleValue(text="vnd.canon-lips")) - setattr(cls, "vnd.capasystems-pg+json", - PermissibleValue(text="vnd.capasystems-pg+json")) - setattr(cls, "vnd.cendio.thinlinc.clientconf", - PermissibleValue(text="vnd.cendio.thinlinc.clientconf")) - setattr(cls, "vnd.century-systems.tcp_stream", - PermissibleValue(text="vnd.century-systems.tcp_stream")) - setattr(cls, "vnd.chemdraw+xml", - PermissibleValue(text="vnd.chemdraw+xml")) - setattr(cls, "vnd.chess-pgn", - PermissibleValue(text="vnd.chess-pgn")) - setattr(cls, "vnd.chipnuts.karaoke-mmd", - PermissibleValue(text="vnd.chipnuts.karaoke-mmd")) - setattr(cls, "vnd.ciedi", - PermissibleValue(text="vnd.ciedi")) - setattr(cls, "vnd.cinderella", - PermissibleValue(text="vnd.cinderella")) - setattr(cls, "vnd.cirpack.isdn-ext", - PermissibleValue(text="vnd.cirpack.isdn-ext")) - setattr(cls, "vnd.citationstyles.style+xml", - PermissibleValue(text="vnd.citationstyles.style+xml")) - setattr(cls, "vnd.claymore", - PermissibleValue(text="vnd.claymore")) - setattr(cls, "vnd.cloanto.rp9", - PermissibleValue(text="vnd.cloanto.rp9")) - setattr(cls, "vnd.clonk.c4group", - PermissibleValue(text="vnd.clonk.c4group")) - setattr(cls, "vnd.cluetrust.cartomobile-config", - PermissibleValue(text="vnd.cluetrust.cartomobile-config")) - setattr(cls, "vnd.cluetrust.cartomobile-config-pkg", - PermissibleValue(text="vnd.cluetrust.cartomobile-config-pkg")) - setattr(cls, "vnd.cncf.helm.chart.content.v1.tar+gzip", - PermissibleValue(text="vnd.cncf.helm.chart.content.v1.tar+gzip")) - setattr(cls, "vnd.cncf.helm.chart.provenance.v1.prov", - PermissibleValue(text="vnd.cncf.helm.chart.provenance.v1.prov")) - setattr(cls, "vnd.cncf.helm.config.v1+json", - PermissibleValue(text="vnd.cncf.helm.config.v1+json")) - setattr(cls, "vnd.coffeescript", - PermissibleValue(text="vnd.coffeescript")) - setattr(cls, "vnd.collabio.xodocuments.document", - PermissibleValue(text="vnd.collabio.xodocuments.document")) - setattr(cls, "vnd.collabio.xodocuments.document-template", - PermissibleValue(text="vnd.collabio.xodocuments.document-template")) - setattr(cls, "vnd.collabio.xodocuments.presentation", - PermissibleValue(text="vnd.collabio.xodocuments.presentation")) - setattr(cls, "vnd.collabio.xodocuments.presentation-template", - PermissibleValue(text="vnd.collabio.xodocuments.presentation-template")) - setattr(cls, "vnd.collabio.xodocuments.spreadsheet", - PermissibleValue(text="vnd.collabio.xodocuments.spreadsheet")) - setattr(cls, "vnd.collabio.xodocuments.spreadsheet-template", - PermissibleValue(text="vnd.collabio.xodocuments.spreadsheet-template")) - setattr(cls, "vnd.collection.doc+json", - PermissibleValue(text="vnd.collection.doc+json")) - setattr(cls, "vnd.collection+json", - PermissibleValue(text="vnd.collection+json")) - setattr(cls, "vnd.collection.next+json", - PermissibleValue(text="vnd.collection.next+json")) - setattr(cls, "vnd.comicbook-rar", - PermissibleValue(text="vnd.comicbook-rar")) - setattr(cls, "vnd.comicbook+zip", - PermissibleValue(text="vnd.comicbook+zip")) - setattr(cls, "vnd.commerce-battelle", - PermissibleValue(text="vnd.commerce-battelle")) - setattr(cls, "vnd.commonspace", - PermissibleValue(text="vnd.commonspace")) - setattr(cls, "vnd.coreos.ignition+json", - PermissibleValue(text="vnd.coreos.ignition+json")) - setattr(cls, "vnd.cosmocaller", - PermissibleValue(text="vnd.cosmocaller")) - setattr(cls, "vnd.contact.cmsg", - PermissibleValue(text="vnd.contact.cmsg")) - setattr(cls, "vnd.crick.clicker", - PermissibleValue(text="vnd.crick.clicker")) - setattr(cls, "vnd.crick.clicker.keyboard", - PermissibleValue(text="vnd.crick.clicker.keyboard")) - setattr(cls, "vnd.crick.clicker.palette", - PermissibleValue(text="vnd.crick.clicker.palette")) - setattr(cls, "vnd.crick.clicker.template", - PermissibleValue(text="vnd.crick.clicker.template")) - setattr(cls, "vnd.crick.clicker.wordbank", - PermissibleValue(text="vnd.crick.clicker.wordbank")) - setattr(cls, "vnd.criticaltools.wbs+xml", - PermissibleValue(text="vnd.criticaltools.wbs+xml")) - setattr(cls, "vnd.cryptii.pipe+json", - PermissibleValue(text="vnd.cryptii.pipe+json")) - setattr(cls, "vnd.crypto-shade-file", - PermissibleValue(text="vnd.crypto-shade-file")) - setattr(cls, "vnd.cryptomator.encrypted", - PermissibleValue(text="vnd.cryptomator.encrypted")) - setattr(cls, "vnd.cryptomator.vault", - PermissibleValue(text="vnd.cryptomator.vault")) - setattr(cls, "vnd.ctc-posml", - PermissibleValue(text="vnd.ctc-posml")) - setattr(cls, "vnd.ctct.ws+xml", - PermissibleValue(text="vnd.ctct.ws+xml")) - setattr(cls, "vnd.cups-pdf", - PermissibleValue(text="vnd.cups-pdf")) - setattr(cls, "vnd.cups-postscript", - PermissibleValue(text="vnd.cups-postscript")) - setattr(cls, "vnd.cups-ppd", - PermissibleValue(text="vnd.cups-ppd")) - setattr(cls, "vnd.cups-raster", - PermissibleValue(text="vnd.cups-raster")) - setattr(cls, "vnd.cups-raw", - PermissibleValue(text="vnd.cups-raw")) - setattr(cls, "vnd.cyan.dean.root+xml", - PermissibleValue(text="vnd.cyan.dean.root+xml")) - setattr(cls, "vnd.cybank", - PermissibleValue(text="vnd.cybank")) - setattr(cls, "vnd.cyclonedx+json", - PermissibleValue(text="vnd.cyclonedx+json")) - setattr(cls, "vnd.cyclonedx+xml", - PermissibleValue(text="vnd.cyclonedx+xml")) - setattr(cls, "vnd.d2l.coursepackage1p0+zip", - PermissibleValue(text="vnd.d2l.coursepackage1p0+zip")) - setattr(cls, "vnd.d3m-dataset", - PermissibleValue(text="vnd.d3m-dataset")) - setattr(cls, "vnd.d3m-problem", - PermissibleValue(text="vnd.d3m-problem")) - setattr(cls, "vnd.dart", - PermissibleValue(text="vnd.dart")) - setattr(cls, "vnd.data-vision.rdz", - PermissibleValue(text="vnd.data-vision.rdz")) - setattr(cls, "vnd.datalog", - PermissibleValue(text="vnd.datalog")) - setattr(cls, "vnd.datapackage+json", - PermissibleValue(text="vnd.datapackage+json")) - setattr(cls, "vnd.dataresource+json", - PermissibleValue(text="vnd.dataresource+json")) - setattr(cls, "vnd.dbf", - PermissibleValue(text="vnd.dbf")) - setattr(cls, "vnd.debian.binary-package", - PermissibleValue(text="vnd.debian.binary-package")) - setattr(cls, "vnd.dece.data", - PermissibleValue(text="vnd.dece.data")) - setattr(cls, "vnd.dece.ttml+xml", - PermissibleValue(text="vnd.dece.ttml+xml")) - setattr(cls, "vnd.dece.unspecified", - PermissibleValue(text="vnd.dece.unspecified")) - setattr(cls, "vnd.dece.zip", - PermissibleValue(text="vnd.dece.zip")) - setattr(cls, "vnd.denovo.fcselayout-link", - PermissibleValue(text="vnd.denovo.fcselayout-link")) - setattr(cls, "vnd.desmume.movie", - PermissibleValue(text="vnd.desmume.movie")) - setattr(cls, "vnd.dir-bi.plate-dl-nosuffix", - PermissibleValue(text="vnd.dir-bi.plate-dl-nosuffix")) - setattr(cls, "vnd.dm.delegation+xml", - PermissibleValue(text="vnd.dm.delegation+xml")) - setattr(cls, "vnd.dna", - PermissibleValue(text="vnd.dna")) - setattr(cls, "vnd.document+json", - PermissibleValue(text="vnd.document+json")) - setattr(cls, "vnd.dolby.mobile.1", - PermissibleValue(text="vnd.dolby.mobile.1")) - setattr(cls, "vnd.dolby.mobile.2", - PermissibleValue(text="vnd.dolby.mobile.2")) - setattr(cls, "vnd.doremir.scorecloud-binary-document", - PermissibleValue(text="vnd.doremir.scorecloud-binary-document")) - setattr(cls, "vnd.dpgraph", - PermissibleValue(text="vnd.dpgraph")) - setattr(cls, "vnd.dreamfactory", - PermissibleValue(text="vnd.dreamfactory")) - setattr(cls, "vnd.drive+json", - PermissibleValue(text="vnd.drive+json")) - setattr(cls, "vnd.dtg.local", - PermissibleValue(text="vnd.dtg.local")) - setattr(cls, "vnd.dtg.local.flash", - PermissibleValue(text="vnd.dtg.local.flash")) - setattr(cls, "vnd.dtg.local.html", - PermissibleValue(text="vnd.dtg.local.html")) - setattr(cls, "vnd.dvb.ait", - PermissibleValue(text="vnd.dvb.ait")) - setattr(cls, "vnd.dvb.dvbisl+xml", - PermissibleValue(text="vnd.dvb.dvbisl+xml")) - setattr(cls, "vnd.dvb.dvbj", - PermissibleValue(text="vnd.dvb.dvbj")) - setattr(cls, "vnd.dvb.esgcontainer", - PermissibleValue(text="vnd.dvb.esgcontainer")) - setattr(cls, "vnd.dvb.ipdcdftnotifaccess", - PermissibleValue(text="vnd.dvb.ipdcdftnotifaccess")) - setattr(cls, "vnd.dvb.ipdcesgaccess", - PermissibleValue(text="vnd.dvb.ipdcesgaccess")) - setattr(cls, "vnd.dvb.ipdcesgaccess2", - PermissibleValue(text="vnd.dvb.ipdcesgaccess2")) - setattr(cls, "vnd.dvb.ipdcesgpdd", - PermissibleValue(text="vnd.dvb.ipdcesgpdd")) - setattr(cls, "vnd.dvb.ipdcroaming", - PermissibleValue(text="vnd.dvb.ipdcroaming")) - setattr(cls, "vnd.dvb.iptv.alfec-base", - PermissibleValue(text="vnd.dvb.iptv.alfec-base")) - setattr(cls, "vnd.dvb.iptv.alfec-enhancement", - PermissibleValue(text="vnd.dvb.iptv.alfec-enhancement")) - setattr(cls, "vnd.dvb.notif-aggregate-root+xml", - PermissibleValue(text="vnd.dvb.notif-aggregate-root+xml")) - setattr(cls, "vnd.dvb.notif-container+xml", - PermissibleValue(text="vnd.dvb.notif-container+xml")) - setattr(cls, "vnd.dvb.notif-generic+xml", - PermissibleValue(text="vnd.dvb.notif-generic+xml")) - setattr(cls, "vnd.dvb.notif-ia-msglist+xml", - PermissibleValue(text="vnd.dvb.notif-ia-msglist+xml")) - setattr(cls, "vnd.dvb.notif-ia-registration-request+xml", - PermissibleValue(text="vnd.dvb.notif-ia-registration-request+xml")) - setattr(cls, "vnd.dvb.notif-ia-registration-response+xml", - PermissibleValue(text="vnd.dvb.notif-ia-registration-response+xml")) - setattr(cls, "vnd.dvb.notif-init+xml", - PermissibleValue(text="vnd.dvb.notif-init+xml")) - setattr(cls, "vnd.dvb.pfr", - PermissibleValue(text="vnd.dvb.pfr")) - setattr(cls, "vnd.dvb.service", - PermissibleValue(text="vnd.dvb.service")) - setattr(cls, "vnd.dxr", - PermissibleValue(text="vnd.dxr")) - setattr(cls, "vnd.dynageo", - PermissibleValue(text="vnd.dynageo")) - setattr(cls, "vnd.dzr", - PermissibleValue(text="vnd.dzr")) - setattr(cls, "vnd.easykaraoke.cdgdownload", - PermissibleValue(text="vnd.easykaraoke.cdgdownload")) - setattr(cls, "vnd.ecip.rlp", - PermissibleValue(text="vnd.ecip.rlp")) - setattr(cls, "vnd.ecdis-update", - PermissibleValue(text="vnd.ecdis-update")) - setattr(cls, "vnd.eclipse.ditto+json", - PermissibleValue(text="vnd.eclipse.ditto+json")) - setattr(cls, "vnd.ecowin.chart", - PermissibleValue(text="vnd.ecowin.chart")) - setattr(cls, "vnd.ecowin.filerequest", - PermissibleValue(text="vnd.ecowin.filerequest")) - setattr(cls, "vnd.ecowin.fileupdate", - PermissibleValue(text="vnd.ecowin.fileupdate")) - setattr(cls, "vnd.ecowin.series", - PermissibleValue(text="vnd.ecowin.series")) - setattr(cls, "vnd.ecowin.seriesrequest", - PermissibleValue(text="vnd.ecowin.seriesrequest")) - setattr(cls, "vnd.ecowin.seriesupdate", - PermissibleValue(text="vnd.ecowin.seriesupdate")) - setattr(cls, "vnd.efi.img", - PermissibleValue(text="vnd.efi.img")) - setattr(cls, "vnd.efi.iso", - PermissibleValue(text="vnd.efi.iso")) - setattr(cls, "vnd.eln+zip", - PermissibleValue(text="vnd.eln+zip")) - setattr(cls, "vnd.emclient.accessrequest+xml", - PermissibleValue(text="vnd.emclient.accessrequest+xml")) - setattr(cls, "vnd.enliven", - PermissibleValue(text="vnd.enliven")) - setattr(cls, "vnd.enphase.envoy", - PermissibleValue(text="vnd.enphase.envoy")) - setattr(cls, "vnd.eprints.data+xml", - PermissibleValue(text="vnd.eprints.data+xml")) - setattr(cls, "vnd.epson.esf", - PermissibleValue(text="vnd.epson.esf")) - setattr(cls, "vnd.epson.msf", - PermissibleValue(text="vnd.epson.msf")) - setattr(cls, "vnd.epson.quickanime", - PermissibleValue(text="vnd.epson.quickanime")) - setattr(cls, "vnd.epson.salt", - PermissibleValue(text="vnd.epson.salt")) - setattr(cls, "vnd.epson.ssf", - PermissibleValue(text="vnd.epson.ssf")) - setattr(cls, "vnd.ericsson.quickcall", - PermissibleValue(text="vnd.ericsson.quickcall")) - setattr(cls, "vnd.espass-espass+zip", - PermissibleValue(text="vnd.espass-espass+zip")) - setattr(cls, "vnd.eszigno3+xml", - PermissibleValue(text="vnd.eszigno3+xml")) - setattr(cls, "vnd.etsi.aoc+xml", - PermissibleValue(text="vnd.etsi.aoc+xml")) - setattr(cls, "vnd.etsi.asic-s+zip", - PermissibleValue(text="vnd.etsi.asic-s+zip")) - setattr(cls, "vnd.etsi.asic-e+zip", - PermissibleValue(text="vnd.etsi.asic-e+zip")) - setattr(cls, "vnd.etsi.cug+xml", - PermissibleValue(text="vnd.etsi.cug+xml")) - setattr(cls, "vnd.etsi.iptvcommand+xml", - PermissibleValue(text="vnd.etsi.iptvcommand+xml")) - setattr(cls, "vnd.etsi.iptvdiscovery+xml", - PermissibleValue(text="vnd.etsi.iptvdiscovery+xml")) - setattr(cls, "vnd.etsi.iptvprofile+xml", - PermissibleValue(text="vnd.etsi.iptvprofile+xml")) - setattr(cls, "vnd.etsi.iptvsad-bc+xml", - PermissibleValue(text="vnd.etsi.iptvsad-bc+xml")) - setattr(cls, "vnd.etsi.iptvsad-cod+xml", - PermissibleValue(text="vnd.etsi.iptvsad-cod+xml")) - setattr(cls, "vnd.etsi.iptvsad-npvr+xml", - PermissibleValue(text="vnd.etsi.iptvsad-npvr+xml")) - setattr(cls, "vnd.etsi.iptvservice+xml", - PermissibleValue(text="vnd.etsi.iptvservice+xml")) - setattr(cls, "vnd.etsi.iptvsync+xml", - PermissibleValue(text="vnd.etsi.iptvsync+xml")) - setattr(cls, "vnd.etsi.iptvueprofile+xml", - PermissibleValue(text="vnd.etsi.iptvueprofile+xml")) - setattr(cls, "vnd.etsi.mcid+xml", - PermissibleValue(text="vnd.etsi.mcid+xml")) - setattr(cls, "vnd.etsi.mheg5", - PermissibleValue(text="vnd.etsi.mheg5")) - setattr(cls, "vnd.etsi.overload-control-policy-dataset+xml", - PermissibleValue(text="vnd.etsi.overload-control-policy-dataset+xml")) - setattr(cls, "vnd.etsi.pstn+xml", - PermissibleValue(text="vnd.etsi.pstn+xml")) - setattr(cls, "vnd.etsi.sci+xml", - PermissibleValue(text="vnd.etsi.sci+xml")) - setattr(cls, "vnd.etsi.simservs+xml", - PermissibleValue(text="vnd.etsi.simservs+xml")) - setattr(cls, "vnd.etsi.timestamp-token", - PermissibleValue(text="vnd.etsi.timestamp-token")) - setattr(cls, "vnd.etsi.tsl+xml", - PermissibleValue(text="vnd.etsi.tsl+xml")) - setattr(cls, "vnd.etsi.tsl.der", - PermissibleValue(text="vnd.etsi.tsl.der")) - setattr(cls, "vnd.eu.kasparian.car+json", - PermissibleValue(text="vnd.eu.kasparian.car+json")) - setattr(cls, "vnd.eudora.data", - PermissibleValue(text="vnd.eudora.data")) - setattr(cls, "vnd.evolv.ecig.profile", - PermissibleValue(text="vnd.evolv.ecig.profile")) - setattr(cls, "vnd.evolv.ecig.settings", - PermissibleValue(text="vnd.evolv.ecig.settings")) - setattr(cls, "vnd.evolv.ecig.theme", - PermissibleValue(text="vnd.evolv.ecig.theme")) - setattr(cls, "vnd.exstream-empower+zip", - PermissibleValue(text="vnd.exstream-empower+zip")) - setattr(cls, "vnd.exstream-package", - PermissibleValue(text="vnd.exstream-package")) - setattr(cls, "vnd.ezpix-album", - PermissibleValue(text="vnd.ezpix-album")) - setattr(cls, "vnd.ezpix-package", - PermissibleValue(text="vnd.ezpix-package")) - setattr(cls, "vnd.f-secure.mobile", - PermissibleValue(text="vnd.f-secure.mobile")) - setattr(cls, "vnd.fastcopy-disk-image", - PermissibleValue(text="vnd.fastcopy-disk-image")) - setattr(cls, "vnd.familysearch.gedcom+zip", - PermissibleValue(text="vnd.familysearch.gedcom+zip")) - setattr(cls, "vnd.fdsn.mseed", - PermissibleValue(text="vnd.fdsn.mseed")) - setattr(cls, "vnd.fdsn.seed", - PermissibleValue(text="vnd.fdsn.seed")) - setattr(cls, "vnd.ffsns", - PermissibleValue(text="vnd.ffsns")) - setattr(cls, "vnd.ficlab.flb+zip", - PermissibleValue(text="vnd.ficlab.flb+zip")) - setattr(cls, "vnd.filmit.zfc", - PermissibleValue(text="vnd.filmit.zfc")) - setattr(cls, "vnd.fints", - PermissibleValue(text="vnd.fints")) - setattr(cls, "vnd.firemonkeys.cloudcell", - PermissibleValue(text="vnd.firemonkeys.cloudcell")) - setattr(cls, "vnd.FloGraphIt", - PermissibleValue(text="vnd.FloGraphIt")) - setattr(cls, "vnd.fluxtime.clip", - PermissibleValue(text="vnd.fluxtime.clip")) - setattr(cls, "vnd.font-fontforge-sfd", - PermissibleValue(text="vnd.font-fontforge-sfd")) - setattr(cls, "vnd.framemaker", - PermissibleValue(text="vnd.framemaker")) - setattr(cls, "vnd.freelog.comic", - PermissibleValue(text="vnd.freelog.comic")) - setattr(cls, "vnd.frogans.fnc (OBSOLETE)", - PermissibleValue(text="vnd.frogans.fnc (OBSOLETE)")) - setattr(cls, "vnd.frogans.ltf (OBSOLETE)", - PermissibleValue(text="vnd.frogans.ltf (OBSOLETE)")) - setattr(cls, "vnd.fsc.weblaunch", - PermissibleValue(text="vnd.fsc.weblaunch")) - setattr(cls, "vnd.fujifilm.fb.docuworks", - PermissibleValue(text="vnd.fujifilm.fb.docuworks")) - setattr(cls, "vnd.fujifilm.fb.docuworks.binder", - PermissibleValue(text="vnd.fujifilm.fb.docuworks.binder")) - setattr(cls, "vnd.fujifilm.fb.docuworks.container", - PermissibleValue(text="vnd.fujifilm.fb.docuworks.container")) - setattr(cls, "vnd.fujifilm.fb.jfi+xml", - PermissibleValue(text="vnd.fujifilm.fb.jfi+xml")) - setattr(cls, "vnd.fujitsu.oasys", - PermissibleValue(text="vnd.fujitsu.oasys")) - setattr(cls, "vnd.fujitsu.oasys2", - PermissibleValue(text="vnd.fujitsu.oasys2")) - setattr(cls, "vnd.fujitsu.oasys3", - PermissibleValue(text="vnd.fujitsu.oasys3")) - setattr(cls, "vnd.fujitsu.oasysgp", - PermissibleValue(text="vnd.fujitsu.oasysgp")) - setattr(cls, "vnd.fujitsu.oasysprs", - PermissibleValue(text="vnd.fujitsu.oasysprs")) - setattr(cls, "vnd.fujixerox.ART4", - PermissibleValue(text="vnd.fujixerox.ART4")) - setattr(cls, "vnd.fujixerox.ART-EX", - PermissibleValue(text="vnd.fujixerox.ART-EX")) - setattr(cls, "vnd.fujixerox.ddd", - PermissibleValue(text="vnd.fujixerox.ddd")) - setattr(cls, "vnd.fujixerox.docuworks", - PermissibleValue(text="vnd.fujixerox.docuworks")) - setattr(cls, "vnd.fujixerox.docuworks.binder", - PermissibleValue(text="vnd.fujixerox.docuworks.binder")) - setattr(cls, "vnd.fujixerox.docuworks.container", - PermissibleValue(text="vnd.fujixerox.docuworks.container")) - setattr(cls, "vnd.fujixerox.HBPL", - PermissibleValue(text="vnd.fujixerox.HBPL")) - setattr(cls, "vnd.fut-misnet", - PermissibleValue(text="vnd.fut-misnet")) - setattr(cls, "vnd.futoin+cbor", - PermissibleValue(text="vnd.futoin+cbor")) - setattr(cls, "vnd.futoin+json", - PermissibleValue(text="vnd.futoin+json")) - setattr(cls, "vnd.fuzzysheet", - PermissibleValue(text="vnd.fuzzysheet")) - setattr(cls, "vnd.genomatix.tuxedo", - PermissibleValue(text="vnd.genomatix.tuxedo")) - setattr(cls, "vnd.genozip", - PermissibleValue(text="vnd.genozip")) - setattr(cls, "vnd.gentics.grd+json", - PermissibleValue(text="vnd.gentics.grd+json")) - setattr(cls, "vnd.gentoo.catmetadata+xml", - PermissibleValue(text="vnd.gentoo.catmetadata+xml")) - setattr(cls, "vnd.gentoo.ebuild", - PermissibleValue(text="vnd.gentoo.ebuild")) - setattr(cls, "vnd.gentoo.eclass", - PermissibleValue(text="vnd.gentoo.eclass")) - setattr(cls, "vnd.gentoo.gpkg", - PermissibleValue(text="vnd.gentoo.gpkg")) - setattr(cls, "vnd.gentoo.manifest", - PermissibleValue(text="vnd.gentoo.manifest")) - setattr(cls, "vnd.gentoo.xpak", - PermissibleValue(text="vnd.gentoo.xpak")) - setattr(cls, "vnd.gentoo.pkgmetadata+xml", - PermissibleValue(text="vnd.gentoo.pkgmetadata+xml")) - setattr(cls, "vnd.geo+json (OBSOLETED by [RFC7946] in favor of application/geo+json)", - PermissibleValue(text="vnd.geo+json (OBSOLETED by [RFC7946] in favor of application/geo+json)")) - setattr(cls, "vnd.geocube+xml (OBSOLETED by request)", - PermissibleValue(text="vnd.geocube+xml (OBSOLETED by request)")) - setattr(cls, "vnd.geogebra.file", - PermissibleValue(text="vnd.geogebra.file")) - setattr(cls, "vnd.geogebra.slides", - PermissibleValue(text="vnd.geogebra.slides")) - setattr(cls, "vnd.geogebra.tool", - PermissibleValue(text="vnd.geogebra.tool")) - setattr(cls, "vnd.geometry-explorer", - PermissibleValue(text="vnd.geometry-explorer")) - setattr(cls, "vnd.geonext", - PermissibleValue(text="vnd.geonext")) - setattr(cls, "vnd.geoplan", - PermissibleValue(text="vnd.geoplan")) - setattr(cls, "vnd.geospace", - PermissibleValue(text="vnd.geospace")) - setattr(cls, "vnd.gerber", - PermissibleValue(text="vnd.gerber")) - setattr(cls, "vnd.globalplatform.card-content-mgt", - PermissibleValue(text="vnd.globalplatform.card-content-mgt")) - setattr(cls, "vnd.globalplatform.card-content-mgt-response", - PermissibleValue(text="vnd.globalplatform.card-content-mgt-response")) - setattr(cls, "vnd.gmx - DEPRECATED", - PermissibleValue(text="vnd.gmx - DEPRECATED")) - setattr(cls, "vnd.gnu.taler.exchange+json", - PermissibleValue(text="vnd.gnu.taler.exchange+json")) - setattr(cls, "vnd.gnu.taler.merchant+json", - PermissibleValue(text="vnd.gnu.taler.merchant+json")) - setattr(cls, "vnd.google-earth.kml+xml", - PermissibleValue(text="vnd.google-earth.kml+xml")) - setattr(cls, "vnd.google-earth.kmz", - PermissibleValue(text="vnd.google-earth.kmz")) - setattr(cls, "vnd.gov.sk.e-form+xml", - PermissibleValue(text="vnd.gov.sk.e-form+xml")) - setattr(cls, "vnd.gov.sk.e-form+zip", - PermissibleValue(text="vnd.gov.sk.e-form+zip")) - setattr(cls, "vnd.gov.sk.xmldatacontainer+xml", - PermissibleValue(text="vnd.gov.sk.xmldatacontainer+xml")) - setattr(cls, "vnd.gpxsee.map+xml", - PermissibleValue(text="vnd.gpxsee.map+xml")) - setattr(cls, "vnd.grafeq", - PermissibleValue(text="vnd.grafeq")) - setattr(cls, "vnd.gridmp", - PermissibleValue(text="vnd.gridmp")) - setattr(cls, "vnd.groove-account", - PermissibleValue(text="vnd.groove-account")) - setattr(cls, "vnd.groove-help", - PermissibleValue(text="vnd.groove-help")) - setattr(cls, "vnd.groove-identity-message", - PermissibleValue(text="vnd.groove-identity-message")) - setattr(cls, "vnd.groove-injector", - PermissibleValue(text="vnd.groove-injector")) - setattr(cls, "vnd.groove-tool-message", - PermissibleValue(text="vnd.groove-tool-message")) - setattr(cls, "vnd.groove-tool-template", - PermissibleValue(text="vnd.groove-tool-template")) - setattr(cls, "vnd.groove-vcard", - PermissibleValue(text="vnd.groove-vcard")) - setattr(cls, "vnd.hal+json", - PermissibleValue(text="vnd.hal+json")) - setattr(cls, "vnd.hal+xml", - PermissibleValue(text="vnd.hal+xml")) - setattr(cls, "vnd.HandHeld-Entertainment+xml", - PermissibleValue(text="vnd.HandHeld-Entertainment+xml")) - setattr(cls, "vnd.hbci", - PermissibleValue(text="vnd.hbci")) - setattr(cls, "vnd.hc+json", - PermissibleValue(text="vnd.hc+json")) - setattr(cls, "vnd.hcl-bireports", - PermissibleValue(text="vnd.hcl-bireports")) - setattr(cls, "vnd.hdt", - PermissibleValue(text="vnd.hdt")) - setattr(cls, "vnd.heroku+json", - PermissibleValue(text="vnd.heroku+json")) - setattr(cls, "vnd.hhe.lesson-player", - PermissibleValue(text="vnd.hhe.lesson-player")) - setattr(cls, "vnd.hp-HPGL", - PermissibleValue(text="vnd.hp-HPGL")) - setattr(cls, "vnd.hp-hpid", - PermissibleValue(text="vnd.hp-hpid")) - setattr(cls, "vnd.hp-hps", - PermissibleValue(text="vnd.hp-hps")) - setattr(cls, "vnd.hp-jlyt", - PermissibleValue(text="vnd.hp-jlyt")) - setattr(cls, "vnd.hp-PCL", - PermissibleValue(text="vnd.hp-PCL")) - setattr(cls, "vnd.hp-PCLXL", - PermissibleValue(text="vnd.hp-PCLXL")) - setattr(cls, "vnd.hsl", - PermissibleValue(text="vnd.hsl")) - setattr(cls, "vnd.httphone", - PermissibleValue(text="vnd.httphone")) - setattr(cls, "vnd.hydrostatix.sof-data", - PermissibleValue(text="vnd.hydrostatix.sof-data")) - setattr(cls, "vnd.hyper-item+json", - PermissibleValue(text="vnd.hyper-item+json")) - setattr(cls, "vnd.hyper+json", - PermissibleValue(text="vnd.hyper+json")) - setattr(cls, "vnd.hyperdrive+json", - PermissibleValue(text="vnd.hyperdrive+json")) - setattr(cls, "vnd.hzn-3d-crossword", - PermissibleValue(text="vnd.hzn-3d-crossword")) - setattr(cls, "vnd.ibm.afplinedata (OBSOLETED in favor of vnd.afpc.afplinedata)", - PermissibleValue(text="vnd.ibm.afplinedata (OBSOLETED in favor of vnd.afpc.afplinedata)")) - setattr(cls, "vnd.ibm.electronic-media", - PermissibleValue(text="vnd.ibm.electronic-media")) - setattr(cls, "vnd.ibm.MiniPay", - PermissibleValue(text="vnd.ibm.MiniPay")) - setattr(cls, "vnd.ibm.modcap (OBSOLETED in favor of application/vnd.afpc.modca)", - PermissibleValue(text="vnd.ibm.modcap (OBSOLETED in favor of application/vnd.afpc.modca)")) - setattr(cls, "vnd.ibm.rights-management", - PermissibleValue(text="vnd.ibm.rights-management")) - setattr(cls, "vnd.ibm.secure-container", - PermissibleValue(text="vnd.ibm.secure-container")) - setattr(cls, "vnd.iccprofile", - PermissibleValue(text="vnd.iccprofile")) - setattr(cls, "vnd.ieee.1905", - PermissibleValue(text="vnd.ieee.1905")) - setattr(cls, "vnd.igloader", - PermissibleValue(text="vnd.igloader")) - setattr(cls, "vnd.imagemeter.folder+zip", - PermissibleValue(text="vnd.imagemeter.folder+zip")) - setattr(cls, "vnd.imagemeter.image+zip", - PermissibleValue(text="vnd.imagemeter.image+zip")) - setattr(cls, "vnd.immervision-ivp", - PermissibleValue(text="vnd.immervision-ivp")) - setattr(cls, "vnd.immervision-ivu", - PermissibleValue(text="vnd.immervision-ivu")) - setattr(cls, "vnd.ims.imsccv1p1", - PermissibleValue(text="vnd.ims.imsccv1p1")) - setattr(cls, "vnd.ims.imsccv1p2", - PermissibleValue(text="vnd.ims.imsccv1p2")) - setattr(cls, "vnd.ims.imsccv1p3", - PermissibleValue(text="vnd.ims.imsccv1p3")) - setattr(cls, "vnd.ims.lis.v2.result+json", - PermissibleValue(text="vnd.ims.lis.v2.result+json")) - setattr(cls, "vnd.ims.lti.v2.toolconsumerprofile+json", - PermissibleValue(text="vnd.ims.lti.v2.toolconsumerprofile+json")) - setattr(cls, "vnd.ims.lti.v2.toolproxy.id+json", - PermissibleValue(text="vnd.ims.lti.v2.toolproxy.id+json")) - setattr(cls, "vnd.ims.lti.v2.toolproxy+json", - PermissibleValue(text="vnd.ims.lti.v2.toolproxy+json")) - setattr(cls, "vnd.ims.lti.v2.toolsettings+json", - PermissibleValue(text="vnd.ims.lti.v2.toolsettings+json")) - setattr(cls, "vnd.ims.lti.v2.toolsettings.simple+json", - PermissibleValue(text="vnd.ims.lti.v2.toolsettings.simple+json")) - setattr(cls, "vnd.informedcontrol.rms+xml", - PermissibleValue(text="vnd.informedcontrol.rms+xml")) - setattr(cls, "vnd.infotech.project", - PermissibleValue(text="vnd.infotech.project")) - setattr(cls, "vnd.infotech.project+xml", - PermissibleValue(text="vnd.infotech.project+xml")) - setattr(cls, "vnd.informix-visionary (OBSOLETED in favor of application/vnd.visionary)", - PermissibleValue(text="vnd.informix-visionary (OBSOLETED in favor of application/vnd.visionary)")) - setattr(cls, "vnd.innopath.wamp.notification", - PermissibleValue(text="vnd.innopath.wamp.notification")) - setattr(cls, "vnd.insors.igm", - PermissibleValue(text="vnd.insors.igm")) - setattr(cls, "vnd.intercon.formnet", - PermissibleValue(text="vnd.intercon.formnet")) - setattr(cls, "vnd.intergeo", - PermissibleValue(text="vnd.intergeo")) - setattr(cls, "vnd.intertrust.digibox", - PermissibleValue(text="vnd.intertrust.digibox")) - setattr(cls, "vnd.intertrust.nncp", - PermissibleValue(text="vnd.intertrust.nncp")) - setattr(cls, "vnd.intu.qbo", - PermissibleValue(text="vnd.intu.qbo")) - setattr(cls, "vnd.intu.qfx", - PermissibleValue(text="vnd.intu.qfx")) - setattr(cls, "vnd.ipfs.ipns-record", - PermissibleValue(text="vnd.ipfs.ipns-record")) - setattr(cls, "vnd.ipld.car", - PermissibleValue(text="vnd.ipld.car")) - setattr(cls, "vnd.ipld.dag-cbor", - PermissibleValue(text="vnd.ipld.dag-cbor")) - setattr(cls, "vnd.ipld.dag-json", - PermissibleValue(text="vnd.ipld.dag-json")) - setattr(cls, "vnd.ipld.raw", - PermissibleValue(text="vnd.ipld.raw")) - setattr(cls, "vnd.iptc.g2.catalogitem+xml", - PermissibleValue(text="vnd.iptc.g2.catalogitem+xml")) - setattr(cls, "vnd.iptc.g2.conceptitem+xml", - PermissibleValue(text="vnd.iptc.g2.conceptitem+xml")) - setattr(cls, "vnd.iptc.g2.knowledgeitem+xml", - PermissibleValue(text="vnd.iptc.g2.knowledgeitem+xml")) - setattr(cls, "vnd.iptc.g2.newsitem+xml", - PermissibleValue(text="vnd.iptc.g2.newsitem+xml")) - setattr(cls, "vnd.iptc.g2.newsmessage+xml", - PermissibleValue(text="vnd.iptc.g2.newsmessage+xml")) - setattr(cls, "vnd.iptc.g2.packageitem+xml", - PermissibleValue(text="vnd.iptc.g2.packageitem+xml")) - setattr(cls, "vnd.iptc.g2.planningitem+xml", - PermissibleValue(text="vnd.iptc.g2.planningitem+xml")) - setattr(cls, "vnd.ipunplugged.rcprofile", - PermissibleValue(text="vnd.ipunplugged.rcprofile")) - setattr(cls, "vnd.irepository.package+xml", - PermissibleValue(text="vnd.irepository.package+xml")) - setattr(cls, "vnd.is-xpr", - PermissibleValue(text="vnd.is-xpr")) - setattr(cls, "vnd.isac.fcs", - PermissibleValue(text="vnd.isac.fcs")) - setattr(cls, "vnd.jam", - PermissibleValue(text="vnd.jam")) - setattr(cls, "vnd.iso11783-10+zip", - PermissibleValue(text="vnd.iso11783-10+zip")) - setattr(cls, "vnd.japannet-directory-service", - PermissibleValue(text="vnd.japannet-directory-service")) - setattr(cls, "vnd.japannet-jpnstore-wakeup", - PermissibleValue(text="vnd.japannet-jpnstore-wakeup")) - setattr(cls, "vnd.japannet-payment-wakeup", - PermissibleValue(text="vnd.japannet-payment-wakeup")) - setattr(cls, "vnd.japannet-registration", - PermissibleValue(text="vnd.japannet-registration")) - setattr(cls, "vnd.japannet-registration-wakeup", - PermissibleValue(text="vnd.japannet-registration-wakeup")) - setattr(cls, "vnd.japannet-setstore-wakeup", - PermissibleValue(text="vnd.japannet-setstore-wakeup")) - setattr(cls, "vnd.japannet-verification", - PermissibleValue(text="vnd.japannet-verification")) - setattr(cls, "vnd.japannet-verification-wakeup", - PermissibleValue(text="vnd.japannet-verification-wakeup")) - setattr(cls, "vnd.jcp.javame.midlet-rms", - PermissibleValue(text="vnd.jcp.javame.midlet-rms")) - setattr(cls, "vnd.jisp", - PermissibleValue(text="vnd.jisp")) - setattr(cls, "vnd.joost.joda-archive", - PermissibleValue(text="vnd.joost.joda-archive")) - setattr(cls, "vnd.jsk.isdn-ngn", - PermissibleValue(text="vnd.jsk.isdn-ngn")) - setattr(cls, "vnd.kahootz", - PermissibleValue(text="vnd.kahootz")) - setattr(cls, "vnd.kde.karbon", - PermissibleValue(text="vnd.kde.karbon")) - setattr(cls, "vnd.kde.kchart", - PermissibleValue(text="vnd.kde.kchart")) - setattr(cls, "vnd.kde.kformula", - PermissibleValue(text="vnd.kde.kformula")) - setattr(cls, "vnd.kde.kivio", - PermissibleValue(text="vnd.kde.kivio")) - setattr(cls, "vnd.kde.kontour", - PermissibleValue(text="vnd.kde.kontour")) - setattr(cls, "vnd.kde.kpresenter", - PermissibleValue(text="vnd.kde.kpresenter")) - setattr(cls, "vnd.kde.kspread", - PermissibleValue(text="vnd.kde.kspread")) - setattr(cls, "vnd.kde.kword", - PermissibleValue(text="vnd.kde.kword")) - setattr(cls, "vnd.kenameaapp", - PermissibleValue(text="vnd.kenameaapp")) - setattr(cls, "vnd.kidspiration", - PermissibleValue(text="vnd.kidspiration")) - setattr(cls, "vnd.Kinar", - PermissibleValue(text="vnd.Kinar")) - setattr(cls, "vnd.koan", - PermissibleValue(text="vnd.koan")) - setattr(cls, "vnd.kodak-descriptor", - PermissibleValue(text="vnd.kodak-descriptor")) - setattr(cls, "vnd.las", - PermissibleValue(text="vnd.las")) - setattr(cls, "vnd.las.las+json", - PermissibleValue(text="vnd.las.las+json")) - setattr(cls, "vnd.las.las+xml", - PermissibleValue(text="vnd.las.las+xml")) - setattr(cls, "vnd.laszip", - PermissibleValue(text="vnd.laszip")) - setattr(cls, "vnd.leap+json", - PermissibleValue(text="vnd.leap+json")) - setattr(cls, "vnd.liberty-request+xml", - PermissibleValue(text="vnd.liberty-request+xml")) - setattr(cls, "vnd.llamagraphics.life-balance.desktop", - PermissibleValue(text="vnd.llamagraphics.life-balance.desktop")) - setattr(cls, "vnd.llamagraphics.life-balance.exchange+xml", - PermissibleValue(text="vnd.llamagraphics.life-balance.exchange+xml")) - setattr(cls, "vnd.logipipe.circuit+zip", - PermissibleValue(text="vnd.logipipe.circuit+zip")) - setattr(cls, "vnd.loom", - PermissibleValue(text="vnd.loom")) - setattr(cls, "vnd.lotus-1-2-3", - PermissibleValue(text="vnd.lotus-1-2-3")) - setattr(cls, "vnd.lotus-approach", - PermissibleValue(text="vnd.lotus-approach")) - setattr(cls, "vnd.lotus-freelance", - PermissibleValue(text="vnd.lotus-freelance")) - setattr(cls, "vnd.lotus-notes", - PermissibleValue(text="vnd.lotus-notes")) - setattr(cls, "vnd.lotus-organizer", - PermissibleValue(text="vnd.lotus-organizer")) - setattr(cls, "vnd.lotus-screencam", - PermissibleValue(text="vnd.lotus-screencam")) - setattr(cls, "vnd.lotus-wordpro", - PermissibleValue(text="vnd.lotus-wordpro")) - setattr(cls, "vnd.macports.portpkg", - PermissibleValue(text="vnd.macports.portpkg")) - setattr(cls, "vnd.mapbox-vector-tile", - PermissibleValue(text="vnd.mapbox-vector-tile")) - setattr(cls, "vnd.marlin.drm.actiontoken+xml", - PermissibleValue(text="vnd.marlin.drm.actiontoken+xml")) - setattr(cls, "vnd.marlin.drm.conftoken+xml", - PermissibleValue(text="vnd.marlin.drm.conftoken+xml")) - setattr(cls, "vnd.marlin.drm.license+xml", - PermissibleValue(text="vnd.marlin.drm.license+xml")) - setattr(cls, "vnd.marlin.drm.mdcf", - PermissibleValue(text="vnd.marlin.drm.mdcf")) - setattr(cls, "vnd.mason+json", - PermissibleValue(text="vnd.mason+json")) - setattr(cls, "vnd.maxar.archive.3tz+zip", - PermissibleValue(text="vnd.maxar.archive.3tz+zip")) - setattr(cls, "vnd.maxmind.maxmind-db", - PermissibleValue(text="vnd.maxmind.maxmind-db")) - setattr(cls, "vnd.mcd", - PermissibleValue(text="vnd.mcd")) - setattr(cls, "vnd.mdl", - PermissibleValue(text="vnd.mdl")) - setattr(cls, "vnd.mdl-mbsdf", - PermissibleValue(text="vnd.mdl-mbsdf")) - setattr(cls, "vnd.medcalcdata", - PermissibleValue(text="vnd.medcalcdata")) - setattr(cls, "vnd.mediastation.cdkey", - PermissibleValue(text="vnd.mediastation.cdkey")) - setattr(cls, "vnd.medicalholodeck.recordxr", - PermissibleValue(text="vnd.medicalholodeck.recordxr")) - setattr(cls, "vnd.meridian-slingshot", - PermissibleValue(text="vnd.meridian-slingshot")) - setattr(cls, "vnd.mermaid", - PermissibleValue(text="vnd.mermaid")) - setattr(cls, "vnd.MFER", - PermissibleValue(text="vnd.MFER")) - setattr(cls, "vnd.mfmp", - PermissibleValue(text="vnd.mfmp")) - setattr(cls, "vnd.micro+json", - PermissibleValue(text="vnd.micro+json")) - setattr(cls, "vnd.micrografx.flo", - PermissibleValue(text="vnd.micrografx.flo")) - setattr(cls, "vnd.micrografx.igx", - PermissibleValue(text="vnd.micrografx.igx")) - setattr(cls, "vnd.microsoft.portable-executable", - PermissibleValue(text="vnd.microsoft.portable-executable")) - setattr(cls, "vnd.microsoft.windows.thumbnail-cache", - PermissibleValue(text="vnd.microsoft.windows.thumbnail-cache")) - setattr(cls, "vnd.miele+json", - PermissibleValue(text="vnd.miele+json")) - setattr(cls, "vnd.mif", - PermissibleValue(text="vnd.mif")) - setattr(cls, "vnd.minisoft-hp3000-save", - PermissibleValue(text="vnd.minisoft-hp3000-save")) - setattr(cls, "vnd.mitsubishi.misty-guard.trustweb", - PermissibleValue(text="vnd.mitsubishi.misty-guard.trustweb")) - setattr(cls, "vnd.Mobius.DAF", - PermissibleValue(text="vnd.Mobius.DAF")) - setattr(cls, "vnd.Mobius.DIS", - PermissibleValue(text="vnd.Mobius.DIS")) - setattr(cls, "vnd.Mobius.MBK", - PermissibleValue(text="vnd.Mobius.MBK")) - setattr(cls, "vnd.Mobius.MQY", - PermissibleValue(text="vnd.Mobius.MQY")) - setattr(cls, "vnd.Mobius.MSL", - PermissibleValue(text="vnd.Mobius.MSL")) - setattr(cls, "vnd.Mobius.PLC", - PermissibleValue(text="vnd.Mobius.PLC")) - setattr(cls, "vnd.Mobius.TXF", - PermissibleValue(text="vnd.Mobius.TXF")) - setattr(cls, "vnd.modl", - PermissibleValue(text="vnd.modl")) - setattr(cls, "vnd.mophun.application", - PermissibleValue(text="vnd.mophun.application")) - setattr(cls, "vnd.mophun.certificate", - PermissibleValue(text="vnd.mophun.certificate")) - setattr(cls, "vnd.motorola.flexsuite", - PermissibleValue(text="vnd.motorola.flexsuite")) - setattr(cls, "vnd.motorola.flexsuite.adsi", - PermissibleValue(text="vnd.motorola.flexsuite.adsi")) - setattr(cls, "vnd.motorola.flexsuite.fis", - PermissibleValue(text="vnd.motorola.flexsuite.fis")) - setattr(cls, "vnd.motorola.flexsuite.gotap", - PermissibleValue(text="vnd.motorola.flexsuite.gotap")) - setattr(cls, "vnd.motorola.flexsuite.kmr", - PermissibleValue(text="vnd.motorola.flexsuite.kmr")) - setattr(cls, "vnd.motorola.flexsuite.ttc", - PermissibleValue(text="vnd.motorola.flexsuite.ttc")) - setattr(cls, "vnd.motorola.flexsuite.wem", - PermissibleValue(text="vnd.motorola.flexsuite.wem")) - setattr(cls, "vnd.motorola.iprm", - PermissibleValue(text="vnd.motorola.iprm")) - setattr(cls, "vnd.mozilla.xul+xml", - PermissibleValue(text="vnd.mozilla.xul+xml")) - setattr(cls, "vnd.ms-artgalry", - PermissibleValue(text="vnd.ms-artgalry")) - setattr(cls, "vnd.ms-asf", - PermissibleValue(text="vnd.ms-asf")) - setattr(cls, "vnd.ms-cab-compressed", - PermissibleValue(text="vnd.ms-cab-compressed")) - setattr(cls, "vnd.ms-3mfdocument", - PermissibleValue(text="vnd.ms-3mfdocument")) - setattr(cls, "vnd.ms-excel", - PermissibleValue(text="vnd.ms-excel")) - setattr(cls, "vnd.ms-excel.addin.macroEnabled.12", - PermissibleValue(text="vnd.ms-excel.addin.macroEnabled.12")) - setattr(cls, "vnd.ms-excel.sheet.binary.macroEnabled.12", - PermissibleValue(text="vnd.ms-excel.sheet.binary.macroEnabled.12")) - setattr(cls, "vnd.ms-excel.sheet.macroEnabled.12", - PermissibleValue(text="vnd.ms-excel.sheet.macroEnabled.12")) - setattr(cls, "vnd.ms-excel.template.macroEnabled.12", - PermissibleValue(text="vnd.ms-excel.template.macroEnabled.12")) - setattr(cls, "vnd.ms-fontobject", - PermissibleValue(text="vnd.ms-fontobject")) - setattr(cls, "vnd.ms-htmlhelp", - PermissibleValue(text="vnd.ms-htmlhelp")) - setattr(cls, "vnd.ms-ims", - PermissibleValue(text="vnd.ms-ims")) - setattr(cls, "vnd.ms-lrm", - PermissibleValue(text="vnd.ms-lrm")) - setattr(cls, "vnd.ms-office.activeX+xml", - PermissibleValue(text="vnd.ms-office.activeX+xml")) - setattr(cls, "vnd.ms-officetheme", - PermissibleValue(text="vnd.ms-officetheme")) - setattr(cls, "vnd.ms-playready.initiator+xml", - PermissibleValue(text="vnd.ms-playready.initiator+xml")) - setattr(cls, "vnd.ms-powerpoint", - PermissibleValue(text="vnd.ms-powerpoint")) - setattr(cls, "vnd.ms-powerpoint.addin.macroEnabled.12", - PermissibleValue(text="vnd.ms-powerpoint.addin.macroEnabled.12")) - setattr(cls, "vnd.ms-powerpoint.presentation.macroEnabled.12", - PermissibleValue(text="vnd.ms-powerpoint.presentation.macroEnabled.12")) - setattr(cls, "vnd.ms-powerpoint.slide.macroEnabled.12", - PermissibleValue(text="vnd.ms-powerpoint.slide.macroEnabled.12")) - setattr(cls, "vnd.ms-powerpoint.slideshow.macroEnabled.12", - PermissibleValue(text="vnd.ms-powerpoint.slideshow.macroEnabled.12")) - setattr(cls, "vnd.ms-powerpoint.template.macroEnabled.12", - PermissibleValue(text="vnd.ms-powerpoint.template.macroEnabled.12")) - setattr(cls, "vnd.ms-PrintDeviceCapabilities+xml", - PermissibleValue(text="vnd.ms-PrintDeviceCapabilities+xml")) - setattr(cls, "vnd.ms-PrintSchemaTicket+xml", - PermissibleValue(text="vnd.ms-PrintSchemaTicket+xml")) - setattr(cls, "vnd.ms-project", - PermissibleValue(text="vnd.ms-project")) - setattr(cls, "vnd.ms-tnef", - PermissibleValue(text="vnd.ms-tnef")) - setattr(cls, "vnd.ms-windows.devicepairing", - PermissibleValue(text="vnd.ms-windows.devicepairing")) - setattr(cls, "vnd.ms-windows.nwprinting.oob", - PermissibleValue(text="vnd.ms-windows.nwprinting.oob")) - setattr(cls, "vnd.ms-windows.printerpairing", - PermissibleValue(text="vnd.ms-windows.printerpairing")) - setattr(cls, "vnd.ms-windows.wsd.oob", - PermissibleValue(text="vnd.ms-windows.wsd.oob")) - setattr(cls, "vnd.ms-wmdrm.lic-chlg-req", - PermissibleValue(text="vnd.ms-wmdrm.lic-chlg-req")) - setattr(cls, "vnd.ms-wmdrm.lic-resp", - PermissibleValue(text="vnd.ms-wmdrm.lic-resp")) - setattr(cls, "vnd.ms-wmdrm.meter-chlg-req", - PermissibleValue(text="vnd.ms-wmdrm.meter-chlg-req")) - setattr(cls, "vnd.ms-wmdrm.meter-resp", - PermissibleValue(text="vnd.ms-wmdrm.meter-resp")) - setattr(cls, "vnd.ms-word.document.macroEnabled.12", - PermissibleValue(text="vnd.ms-word.document.macroEnabled.12")) - setattr(cls, "vnd.ms-word.template.macroEnabled.12", - PermissibleValue(text="vnd.ms-word.template.macroEnabled.12")) - setattr(cls, "vnd.ms-works", - PermissibleValue(text="vnd.ms-works")) - setattr(cls, "vnd.ms-wpl", - PermissibleValue(text="vnd.ms-wpl")) - setattr(cls, "vnd.ms-xpsdocument", - PermissibleValue(text="vnd.ms-xpsdocument")) - setattr(cls, "vnd.msa-disk-image", - PermissibleValue(text="vnd.msa-disk-image")) - setattr(cls, "vnd.mseq", - PermissibleValue(text="vnd.mseq")) - setattr(cls, "vnd.msign", - PermissibleValue(text="vnd.msign")) - setattr(cls, "vnd.multiad.creator", - PermissibleValue(text="vnd.multiad.creator")) - setattr(cls, "vnd.multiad.creator.cif", - PermissibleValue(text="vnd.multiad.creator.cif")) - setattr(cls, "vnd.musician", - PermissibleValue(text="vnd.musician")) - setattr(cls, "vnd.music-niff", - PermissibleValue(text="vnd.music-niff")) - setattr(cls, "vnd.muvee.style", - PermissibleValue(text="vnd.muvee.style")) - setattr(cls, "vnd.mynfc", - PermissibleValue(text="vnd.mynfc")) - setattr(cls, "vnd.nacamar.ybrid+json", - PermissibleValue(text="vnd.nacamar.ybrid+json")) - setattr(cls, "vnd.ncd.control", - PermissibleValue(text="vnd.ncd.control")) - setattr(cls, "vnd.ncd.reference", - PermissibleValue(text="vnd.ncd.reference")) - setattr(cls, "vnd.nearst.inv+json", - PermissibleValue(text="vnd.nearst.inv+json")) - setattr(cls, "vnd.nebumind.line", - PermissibleValue(text="vnd.nebumind.line")) - setattr(cls, "vnd.nervana", - PermissibleValue(text="vnd.nervana")) - setattr(cls, "vnd.netfpx", - PermissibleValue(text="vnd.netfpx")) - setattr(cls, "vnd.neurolanguage.nlu", - PermissibleValue(text="vnd.neurolanguage.nlu")) - setattr(cls, "vnd.nimn", - PermissibleValue(text="vnd.nimn")) - setattr(cls, "vnd.nintendo.snes.rom", - PermissibleValue(text="vnd.nintendo.snes.rom")) - setattr(cls, "vnd.nintendo.nitro.rom", - PermissibleValue(text="vnd.nintendo.nitro.rom")) - setattr(cls, "vnd.nitf", - PermissibleValue(text="vnd.nitf")) - setattr(cls, "vnd.noblenet-directory", - PermissibleValue(text="vnd.noblenet-directory")) - setattr(cls, "vnd.noblenet-sealer", - PermissibleValue(text="vnd.noblenet-sealer")) - setattr(cls, "vnd.noblenet-web", - PermissibleValue(text="vnd.noblenet-web")) - setattr(cls, "vnd.nokia.catalogs", - PermissibleValue(text="vnd.nokia.catalogs")) - setattr(cls, "vnd.nokia.conml+wbxml", - PermissibleValue(text="vnd.nokia.conml+wbxml")) - setattr(cls, "vnd.nokia.conml+xml", - PermissibleValue(text="vnd.nokia.conml+xml")) - setattr(cls, "vnd.nokia.iptv.config+xml", - PermissibleValue(text="vnd.nokia.iptv.config+xml")) - setattr(cls, "vnd.nokia.iSDS-radio-presets", - PermissibleValue(text="vnd.nokia.iSDS-radio-presets")) - setattr(cls, "vnd.nokia.landmark+wbxml", - PermissibleValue(text="vnd.nokia.landmark+wbxml")) - setattr(cls, "vnd.nokia.landmark+xml", - PermissibleValue(text="vnd.nokia.landmark+xml")) - setattr(cls, "vnd.nokia.landmarkcollection+xml", - PermissibleValue(text="vnd.nokia.landmarkcollection+xml")) - setattr(cls, "vnd.nokia.ncd", - PermissibleValue(text="vnd.nokia.ncd")) - setattr(cls, "vnd.nokia.n-gage.ac+xml", - PermissibleValue(text="vnd.nokia.n-gage.ac+xml")) - setattr(cls, "vnd.nokia.n-gage.data", - PermissibleValue(text="vnd.nokia.n-gage.data")) - setattr(cls, "vnd.nokia.n-gage.symbian.install (OBSOLETE", - PermissibleValue(text="vnd.nokia.n-gage.symbian.install (OBSOLETE")) - setattr(cls, "vnd.nokia.pcd+wbxml", - PermissibleValue(text="vnd.nokia.pcd+wbxml")) - setattr(cls, "vnd.nokia.pcd+xml", - PermissibleValue(text="vnd.nokia.pcd+xml")) - setattr(cls, "vnd.nokia.radio-preset", - PermissibleValue(text="vnd.nokia.radio-preset")) - setattr(cls, "vnd.nokia.radio-presets", - PermissibleValue(text="vnd.nokia.radio-presets")) - setattr(cls, "vnd.novadigm.EDM", - PermissibleValue(text="vnd.novadigm.EDM")) - setattr(cls, "vnd.novadigm.EDX", - PermissibleValue(text="vnd.novadigm.EDX")) - setattr(cls, "vnd.novadigm.EXT", - PermissibleValue(text="vnd.novadigm.EXT")) - setattr(cls, "vnd.ntt-local.content-share", - PermissibleValue(text="vnd.ntt-local.content-share")) - setattr(cls, "vnd.ntt-local.file-transfer", - PermissibleValue(text="vnd.ntt-local.file-transfer")) - setattr(cls, "vnd.ntt-local.ogw_remote-access", - PermissibleValue(text="vnd.ntt-local.ogw_remote-access")) - setattr(cls, "vnd.ntt-local.sip-ta_remote", - PermissibleValue(text="vnd.ntt-local.sip-ta_remote")) - setattr(cls, "vnd.ntt-local.sip-ta_tcp_stream", - PermissibleValue(text="vnd.ntt-local.sip-ta_tcp_stream")) - setattr(cls, "vnd.oasis.opendocument.base", - PermissibleValue(text="vnd.oasis.opendocument.base")) - setattr(cls, "vnd.oasis.opendocument.chart", - PermissibleValue(text="vnd.oasis.opendocument.chart")) - setattr(cls, "vnd.oasis.opendocument.chart-template", - PermissibleValue(text="vnd.oasis.opendocument.chart-template")) - setattr(cls, "vnd.oasis.opendocument.database (OBSOLETED in favor of application/vnd.oasis.opendocument.base)", - PermissibleValue(text="vnd.oasis.opendocument.database (OBSOLETED in favor of application/vnd.oasis.opendocument.base)")) - setattr(cls, "vnd.oasis.opendocument.formula", - PermissibleValue(text="vnd.oasis.opendocument.formula")) - setattr(cls, "vnd.oasis.opendocument.formula-template", - PermissibleValue(text="vnd.oasis.opendocument.formula-template")) - setattr(cls, "vnd.oasis.opendocument.graphics", - PermissibleValue(text="vnd.oasis.opendocument.graphics")) - setattr(cls, "vnd.oasis.opendocument.graphics-template", - PermissibleValue(text="vnd.oasis.opendocument.graphics-template")) - setattr(cls, "vnd.oasis.opendocument.image", - PermissibleValue(text="vnd.oasis.opendocument.image")) - setattr(cls, "vnd.oasis.opendocument.image-template", - PermissibleValue(text="vnd.oasis.opendocument.image-template")) - setattr(cls, "vnd.oasis.opendocument.presentation", - PermissibleValue(text="vnd.oasis.opendocument.presentation")) - setattr(cls, "vnd.oasis.opendocument.presentation-template", - PermissibleValue(text="vnd.oasis.opendocument.presentation-template")) - setattr(cls, "vnd.oasis.opendocument.spreadsheet", - PermissibleValue(text="vnd.oasis.opendocument.spreadsheet")) - setattr(cls, "vnd.oasis.opendocument.spreadsheet-template", - PermissibleValue(text="vnd.oasis.opendocument.spreadsheet-template")) - setattr(cls, "vnd.oasis.opendocument.text", - PermissibleValue(text="vnd.oasis.opendocument.text")) - setattr(cls, "vnd.oasis.opendocument.text-master", - PermissibleValue(text="vnd.oasis.opendocument.text-master")) - setattr(cls, "vnd.oasis.opendocument.text-master-template", - PermissibleValue(text="vnd.oasis.opendocument.text-master-template")) - setattr(cls, "vnd.oasis.opendocument.text-template", - PermissibleValue(text="vnd.oasis.opendocument.text-template")) - setattr(cls, "vnd.oasis.opendocument.text-web", - PermissibleValue(text="vnd.oasis.opendocument.text-web")) - setattr(cls, "vnd.obn", - PermissibleValue(text="vnd.obn")) - setattr(cls, "vnd.ocf+cbor", - PermissibleValue(text="vnd.ocf+cbor")) - setattr(cls, "vnd.oci.image.manifest.v1+json", - PermissibleValue(text="vnd.oci.image.manifest.v1+json")) - setattr(cls, "vnd.oftn.l10n+json", - PermissibleValue(text="vnd.oftn.l10n+json")) - setattr(cls, "vnd.oipf.contentaccessdownload+xml", - PermissibleValue(text="vnd.oipf.contentaccessdownload+xml")) - setattr(cls, "vnd.oipf.contentaccessstreaming+xml", - PermissibleValue(text="vnd.oipf.contentaccessstreaming+xml")) - setattr(cls, "vnd.oipf.cspg-hexbinary", - PermissibleValue(text="vnd.oipf.cspg-hexbinary")) - setattr(cls, "vnd.oipf.dae.svg+xml", - PermissibleValue(text="vnd.oipf.dae.svg+xml")) - setattr(cls, "vnd.oipf.dae.xhtml+xml", - PermissibleValue(text="vnd.oipf.dae.xhtml+xml")) - setattr(cls, "vnd.oipf.mippvcontrolmessage+xml", - PermissibleValue(text="vnd.oipf.mippvcontrolmessage+xml")) - setattr(cls, "vnd.oipf.pae.gem", - PermissibleValue(text="vnd.oipf.pae.gem")) - setattr(cls, "vnd.oipf.spdiscovery+xml", - PermissibleValue(text="vnd.oipf.spdiscovery+xml")) - setattr(cls, "vnd.oipf.spdlist+xml", - PermissibleValue(text="vnd.oipf.spdlist+xml")) - setattr(cls, "vnd.oipf.ueprofile+xml", - PermissibleValue(text="vnd.oipf.ueprofile+xml")) - setattr(cls, "vnd.oipf.userprofile+xml", - PermissibleValue(text="vnd.oipf.userprofile+xml")) - setattr(cls, "vnd.olpc-sugar", - PermissibleValue(text="vnd.olpc-sugar")) - setattr(cls, "vnd.oma.bcast.associated-procedure-parameter+xml", - PermissibleValue(text="vnd.oma.bcast.associated-procedure-parameter+xml")) - setattr(cls, "vnd.oma.bcast.drm-trigger+xml", - PermissibleValue(text="vnd.oma.bcast.drm-trigger+xml")) - setattr(cls, "vnd.oma.bcast.imd+xml", - PermissibleValue(text="vnd.oma.bcast.imd+xml")) - setattr(cls, "vnd.oma.bcast.ltkm", - PermissibleValue(text="vnd.oma.bcast.ltkm")) - setattr(cls, "vnd.oma.bcast.notification+xml", - PermissibleValue(text="vnd.oma.bcast.notification+xml")) - setattr(cls, "vnd.oma.bcast.provisioningtrigger", - PermissibleValue(text="vnd.oma.bcast.provisioningtrigger")) - setattr(cls, "vnd.oma.bcast.sgboot", - PermissibleValue(text="vnd.oma.bcast.sgboot")) - setattr(cls, "vnd.oma.bcast.sgdd+xml", - PermissibleValue(text="vnd.oma.bcast.sgdd+xml")) - setattr(cls, "vnd.oma.bcast.sgdu", - PermissibleValue(text="vnd.oma.bcast.sgdu")) - setattr(cls, "vnd.oma.bcast.simple-symbol-container", - PermissibleValue(text="vnd.oma.bcast.simple-symbol-container")) - setattr(cls, "vnd.oma.bcast.smartcard-trigger+xml", - PermissibleValue(text="vnd.oma.bcast.smartcard-trigger+xml")) - setattr(cls, "vnd.oma.bcast.sprov+xml", - PermissibleValue(text="vnd.oma.bcast.sprov+xml")) - setattr(cls, "vnd.oma.bcast.stkm", - PermissibleValue(text="vnd.oma.bcast.stkm")) - setattr(cls, "vnd.oma.cab-address-book+xml", - PermissibleValue(text="vnd.oma.cab-address-book+xml")) - setattr(cls, "vnd.oma.cab-feature-handler+xml", - PermissibleValue(text="vnd.oma.cab-feature-handler+xml")) - setattr(cls, "vnd.oma.cab-pcc+xml", - PermissibleValue(text="vnd.oma.cab-pcc+xml")) - setattr(cls, "vnd.oma.cab-subs-invite+xml", - PermissibleValue(text="vnd.oma.cab-subs-invite+xml")) - setattr(cls, "vnd.oma.cab-user-prefs+xml", - PermissibleValue(text="vnd.oma.cab-user-prefs+xml")) - setattr(cls, "vnd.oma.dcd", - PermissibleValue(text="vnd.oma.dcd")) - setattr(cls, "vnd.oma.dcdc", - PermissibleValue(text="vnd.oma.dcdc")) - setattr(cls, "vnd.oma.dd2+xml", - PermissibleValue(text="vnd.oma.dd2+xml")) - setattr(cls, "vnd.oma.drm.risd+xml", - PermissibleValue(text="vnd.oma.drm.risd+xml")) - setattr(cls, "vnd.oma.group-usage-list+xml", - PermissibleValue(text="vnd.oma.group-usage-list+xml")) - setattr(cls, "vnd.oma.lwm2m+cbor", - PermissibleValue(text="vnd.oma.lwm2m+cbor")) - setattr(cls, "vnd.oma.lwm2m+json", - PermissibleValue(text="vnd.oma.lwm2m+json")) - setattr(cls, "vnd.oma.lwm2m+tlv", - PermissibleValue(text="vnd.oma.lwm2m+tlv")) - setattr(cls, "vnd.oma.pal+xml", - PermissibleValue(text="vnd.oma.pal+xml")) - setattr(cls, "vnd.oma.poc.detailed-progress-report+xml", - PermissibleValue(text="vnd.oma.poc.detailed-progress-report+xml")) - setattr(cls, "vnd.oma.poc.final-report+xml", - PermissibleValue(text="vnd.oma.poc.final-report+xml")) - setattr(cls, "vnd.oma.poc.groups+xml", - PermissibleValue(text="vnd.oma.poc.groups+xml")) - setattr(cls, "vnd.oma.poc.invocation-descriptor+xml", - PermissibleValue(text="vnd.oma.poc.invocation-descriptor+xml")) - setattr(cls, "vnd.oma.poc.optimized-progress-report+xml", - PermissibleValue(text="vnd.oma.poc.optimized-progress-report+xml")) - setattr(cls, "vnd.oma.push", - PermissibleValue(text="vnd.oma.push")) - setattr(cls, "vnd.oma.scidm.messages+xml", - PermissibleValue(text="vnd.oma.scidm.messages+xml")) - setattr(cls, "vnd.oma.xcap-directory+xml", - PermissibleValue(text="vnd.oma.xcap-directory+xml")) - setattr(cls, "vnd.omads-email+xml", - PermissibleValue(text="vnd.omads-email+xml")) - setattr(cls, "vnd.omads-file+xml", - PermissibleValue(text="vnd.omads-file+xml")) - setattr(cls, "vnd.omads-folder+xml", - PermissibleValue(text="vnd.omads-folder+xml")) - setattr(cls, "vnd.omaloc-supl-init", - PermissibleValue(text="vnd.omaloc-supl-init")) - setattr(cls, "vnd.oma-scws-config", - PermissibleValue(text="vnd.oma-scws-config")) - setattr(cls, "vnd.oma-scws-http-request", - PermissibleValue(text="vnd.oma-scws-http-request")) - setattr(cls, "vnd.oma-scws-http-response", - PermissibleValue(text="vnd.oma-scws-http-response")) - setattr(cls, "vnd.onepager", - PermissibleValue(text="vnd.onepager")) - setattr(cls, "vnd.onepagertamp", - PermissibleValue(text="vnd.onepagertamp")) - setattr(cls, "vnd.onepagertamx", - PermissibleValue(text="vnd.onepagertamx")) - setattr(cls, "vnd.onepagertat", - PermissibleValue(text="vnd.onepagertat")) - setattr(cls, "vnd.onepagertatp", - PermissibleValue(text="vnd.onepagertatp")) - setattr(cls, "vnd.onepagertatx", - PermissibleValue(text="vnd.onepagertatx")) - setattr(cls, "vnd.onvif.metadata", - PermissibleValue(text="vnd.onvif.metadata")) - setattr(cls, "vnd.openblox.game-binary", - PermissibleValue(text="vnd.openblox.game-binary")) - setattr(cls, "vnd.openblox.game+xml", - PermissibleValue(text="vnd.openblox.game+xml")) - setattr(cls, "vnd.openeye.oeb", - PermissibleValue(text="vnd.openeye.oeb")) - setattr(cls, "vnd.openstreetmap.data+xml", - PermissibleValue(text="vnd.openstreetmap.data+xml")) - setattr(cls, "vnd.opentimestamps.ots", - PermissibleValue(text="vnd.opentimestamps.ots")) - setattr(cls, "vnd.openxmlformats-officedocument.custom-properties+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.custom-properties+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.customXmlProperties+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.customXmlProperties+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.drawing+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.drawing+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.drawingml.chart+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.drawingml.chart+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.drawingml.chartshapes+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.drawingml.chartshapes+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.drawingml.diagramColors+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.drawingml.diagramColors+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.drawingml.diagramData+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.drawingml.diagramData+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.extended-properties+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.extended-properties+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.comments+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.comments+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.notesMaster+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.notesMaster+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.notesSlide+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.notesSlide+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.presentation", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.presentation")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.presentation.main+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.presentation.main+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.presProps+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.presProps+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.slide", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.slide")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.slide+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.slide+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.slideLayout+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.slideLayout+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.slideMaster+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.slideMaster+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.slideshow", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.slideshow")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.tableStyles+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.tableStyles+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.tags+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.tags+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.template", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.template")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.template.main+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.template.main+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.presentationml.viewProps+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.presentationml.viewProps+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.comments+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.comments+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.connections+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.connections+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.sheet", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.sheet")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.styles+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.styles+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.table+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.table+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.template", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.template")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.theme+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.theme+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.themeOverride+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.themeOverride+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.vmlDrawing", - PermissibleValue(text="vnd.openxmlformats-officedocument.vmlDrawing")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.comments+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.comments+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.document", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.document")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.footer+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.settings+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.settings+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.styles+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.styles+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.template", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.template")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml")) - setattr(cls, "vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml", - PermissibleValue(text="vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml")) - setattr(cls, "vnd.openxmlformats-package.core-properties+xml", - PermissibleValue(text="vnd.openxmlformats-package.core-properties+xml")) - setattr(cls, "vnd.openxmlformats-package.digital-signature-xmlsignature+xml", - PermissibleValue(text="vnd.openxmlformats-package.digital-signature-xmlsignature+xml")) - setattr(cls, "vnd.openxmlformats-package.relationships+xml", - PermissibleValue(text="vnd.openxmlformats-package.relationships+xml")) - setattr(cls, "vnd.oracle.resource+json", - PermissibleValue(text="vnd.oracle.resource+json")) - setattr(cls, "vnd.orange.indata", - PermissibleValue(text="vnd.orange.indata")) - setattr(cls, "vnd.osa.netdeploy", - PermissibleValue(text="vnd.osa.netdeploy")) - setattr(cls, "vnd.osgeo.mapguide.package", - PermissibleValue(text="vnd.osgeo.mapguide.package")) - setattr(cls, "vnd.osgi.bundle", - PermissibleValue(text="vnd.osgi.bundle")) - setattr(cls, "vnd.osgi.dp", - PermissibleValue(text="vnd.osgi.dp")) - setattr(cls, "vnd.osgi.subsystem", - PermissibleValue(text="vnd.osgi.subsystem")) - setattr(cls, "vnd.otps.ct-kip+xml", - PermissibleValue(text="vnd.otps.ct-kip+xml")) - setattr(cls, "vnd.oxli.countgraph", - PermissibleValue(text="vnd.oxli.countgraph")) - setattr(cls, "vnd.pagerduty+json", - PermissibleValue(text="vnd.pagerduty+json")) - setattr(cls, "vnd.palm", - PermissibleValue(text="vnd.palm")) - setattr(cls, "vnd.panoply", - PermissibleValue(text="vnd.panoply")) - setattr(cls, "vnd.paos.xml", - PermissibleValue(text="vnd.paos.xml")) - setattr(cls, "vnd.patentdive", - PermissibleValue(text="vnd.patentdive")) - setattr(cls, "vnd.patientecommsdoc", - PermissibleValue(text="vnd.patientecommsdoc")) - setattr(cls, "vnd.pawaafile", - PermissibleValue(text="vnd.pawaafile")) - setattr(cls, "vnd.pcos", - PermissibleValue(text="vnd.pcos")) - setattr(cls, "vnd.pg.format", - PermissibleValue(text="vnd.pg.format")) - setattr(cls, "vnd.pg.osasli", - PermissibleValue(text="vnd.pg.osasli")) - setattr(cls, "vnd.piaccess.application-licence", - PermissibleValue(text="vnd.piaccess.application-licence")) - setattr(cls, "vnd.picsel", - PermissibleValue(text="vnd.picsel")) - setattr(cls, "vnd.pmi.widget", - PermissibleValue(text="vnd.pmi.widget")) - setattr(cls, "vnd.poc.group-advertisement+xml", - PermissibleValue(text="vnd.poc.group-advertisement+xml")) - setattr(cls, "vnd.pocketlearn", - PermissibleValue(text="vnd.pocketlearn")) - setattr(cls, "vnd.powerbuilder6", - PermissibleValue(text="vnd.powerbuilder6")) - setattr(cls, "vnd.powerbuilder6-s", - PermissibleValue(text="vnd.powerbuilder6-s")) - setattr(cls, "vnd.powerbuilder7", - PermissibleValue(text="vnd.powerbuilder7")) - setattr(cls, "vnd.powerbuilder75", - PermissibleValue(text="vnd.powerbuilder75")) - setattr(cls, "vnd.powerbuilder75-s", - PermissibleValue(text="vnd.powerbuilder75-s")) - setattr(cls, "vnd.powerbuilder7-s", - PermissibleValue(text="vnd.powerbuilder7-s")) - setattr(cls, "vnd.preminet", - PermissibleValue(text="vnd.preminet")) - setattr(cls, "vnd.previewsystems.box", - PermissibleValue(text="vnd.previewsystems.box")) - setattr(cls, "vnd.proteus.magazine", - PermissibleValue(text="vnd.proteus.magazine")) - setattr(cls, "vnd.psfs", - PermissibleValue(text="vnd.psfs")) - setattr(cls, "vnd.pt.mundusmundi", - PermissibleValue(text="vnd.pt.mundusmundi")) - setattr(cls, "vnd.publishare-delta-tree", - PermissibleValue(text="vnd.publishare-delta-tree")) - setattr(cls, "vnd.pvi.ptid1", - PermissibleValue(text="vnd.pvi.ptid1")) - setattr(cls, "vnd.pwg-multiplexed", - PermissibleValue(text="vnd.pwg-multiplexed")) - setattr(cls, "vnd.pwg-xhtml-print+xml", - PermissibleValue(text="vnd.pwg-xhtml-print+xml")) - setattr(cls, "vnd.qualcomm.brew-app-res", - PermissibleValue(text="vnd.qualcomm.brew-app-res")) - setattr(cls, "vnd.quarantainenet", - PermissibleValue(text="vnd.quarantainenet")) - setattr(cls, "vnd.Quark.QuarkXPress", - PermissibleValue(text="vnd.Quark.QuarkXPress")) - setattr(cls, "vnd.quobject-quoxdocument", - PermissibleValue(text="vnd.quobject-quoxdocument")) - setattr(cls, "vnd.radisys.moml+xml", - PermissibleValue(text="vnd.radisys.moml+xml")) - setattr(cls, "vnd.radisys.msml-audit-conf+xml", - PermissibleValue(text="vnd.radisys.msml-audit-conf+xml")) - setattr(cls, "vnd.radisys.msml-audit-conn+xml", - PermissibleValue(text="vnd.radisys.msml-audit-conn+xml")) - setattr(cls, "vnd.radisys.msml-audit-dialog+xml", - PermissibleValue(text="vnd.radisys.msml-audit-dialog+xml")) - setattr(cls, "vnd.radisys.msml-audit-stream+xml", - PermissibleValue(text="vnd.radisys.msml-audit-stream+xml")) - setattr(cls, "vnd.radisys.msml-audit+xml", - PermissibleValue(text="vnd.radisys.msml-audit+xml")) - setattr(cls, "vnd.radisys.msml-conf+xml", - PermissibleValue(text="vnd.radisys.msml-conf+xml")) - setattr(cls, "vnd.radisys.msml-dialog-base+xml", - PermissibleValue(text="vnd.radisys.msml-dialog-base+xml")) - setattr(cls, "vnd.radisys.msml-dialog-fax-detect+xml", - PermissibleValue(text="vnd.radisys.msml-dialog-fax-detect+xml")) - setattr(cls, "vnd.radisys.msml-dialog-fax-sendrecv+xml", - PermissibleValue(text="vnd.radisys.msml-dialog-fax-sendrecv+xml")) - setattr(cls, "vnd.radisys.msml-dialog-group+xml", - PermissibleValue(text="vnd.radisys.msml-dialog-group+xml")) - setattr(cls, "vnd.radisys.msml-dialog-speech+xml", - PermissibleValue(text="vnd.radisys.msml-dialog-speech+xml")) - setattr(cls, "vnd.radisys.msml-dialog-transform+xml", - PermissibleValue(text="vnd.radisys.msml-dialog-transform+xml")) - setattr(cls, "vnd.radisys.msml-dialog+xml", - PermissibleValue(text="vnd.radisys.msml-dialog+xml")) - setattr(cls, "vnd.radisys.msml+xml", - PermissibleValue(text="vnd.radisys.msml+xml")) - setattr(cls, "vnd.rainstor.data", - PermissibleValue(text="vnd.rainstor.data")) - setattr(cls, "vnd.rapid", - PermissibleValue(text="vnd.rapid")) - setattr(cls, "vnd.rar", - PermissibleValue(text="vnd.rar")) - setattr(cls, "vnd.realvnc.bed", - PermissibleValue(text="vnd.realvnc.bed")) - setattr(cls, "vnd.recordare.musicxml", - PermissibleValue(text="vnd.recordare.musicxml")) - setattr(cls, "vnd.recordare.musicxml+xml", - PermissibleValue(text="vnd.recordare.musicxml+xml")) - setattr(cls, "vnd.relpipe", - PermissibleValue(text="vnd.relpipe")) - setattr(cls, "vnd.RenLearn.rlprint", - PermissibleValue(text="vnd.RenLearn.rlprint")) - setattr(cls, "vnd.resilient.logic", - PermissibleValue(text="vnd.resilient.logic")) - setattr(cls, "vnd.restful+json", - PermissibleValue(text="vnd.restful+json")) - setattr(cls, "vnd.rig.cryptonote", - PermissibleValue(text="vnd.rig.cryptonote")) - setattr(cls, "vnd.route66.link66+xml", - PermissibleValue(text="vnd.route66.link66+xml")) - setattr(cls, "vnd.rs-274x", - PermissibleValue(text="vnd.rs-274x")) - setattr(cls, "vnd.ruckus.download", - PermissibleValue(text="vnd.ruckus.download")) - setattr(cls, "vnd.s3sms", - PermissibleValue(text="vnd.s3sms")) - setattr(cls, "vnd.sailingtracker.track", - PermissibleValue(text="vnd.sailingtracker.track")) - setattr(cls, "vnd.sar", - PermissibleValue(text="vnd.sar")) - setattr(cls, "vnd.sbm.cid", - PermissibleValue(text="vnd.sbm.cid")) - setattr(cls, "vnd.sbm.mid2", - PermissibleValue(text="vnd.sbm.mid2")) - setattr(cls, "vnd.scribus", - PermissibleValue(text="vnd.scribus")) - setattr(cls, "vnd.sealed.3df", - PermissibleValue(text="vnd.sealed.3df")) - setattr(cls, "vnd.sealed.csf", - PermissibleValue(text="vnd.sealed.csf")) - setattr(cls, "vnd.sealed.doc", - PermissibleValue(text="vnd.sealed.doc")) - setattr(cls, "vnd.sealed.eml", - PermissibleValue(text="vnd.sealed.eml")) - setattr(cls, "vnd.sealed.mht", - PermissibleValue(text="vnd.sealed.mht")) - setattr(cls, "vnd.sealed.net", - PermissibleValue(text="vnd.sealed.net")) - setattr(cls, "vnd.sealed.ppt", - PermissibleValue(text="vnd.sealed.ppt")) - setattr(cls, "vnd.sealed.tiff", - PermissibleValue(text="vnd.sealed.tiff")) - setattr(cls, "vnd.sealed.xls", - PermissibleValue(text="vnd.sealed.xls")) - setattr(cls, "vnd.sealedmedia.softseal.html", - PermissibleValue(text="vnd.sealedmedia.softseal.html")) - setattr(cls, "vnd.sealedmedia.softseal.pdf", - PermissibleValue(text="vnd.sealedmedia.softseal.pdf")) - setattr(cls, "vnd.seemail", - PermissibleValue(text="vnd.seemail")) - setattr(cls, "vnd.seis+json", - PermissibleValue(text="vnd.seis+json")) - setattr(cls, "vnd.sema", - PermissibleValue(text="vnd.sema")) - setattr(cls, "vnd.semd", - PermissibleValue(text="vnd.semd")) - setattr(cls, "vnd.semf", - PermissibleValue(text="vnd.semf")) - setattr(cls, "vnd.shade-save-file", - PermissibleValue(text="vnd.shade-save-file")) - setattr(cls, "vnd.shana.informed.formdata", - PermissibleValue(text="vnd.shana.informed.formdata")) - setattr(cls, "vnd.shana.informed.formtemplate", - PermissibleValue(text="vnd.shana.informed.formtemplate")) - setattr(cls, "vnd.shana.informed.interchange", - PermissibleValue(text="vnd.shana.informed.interchange")) - setattr(cls, "vnd.shana.informed.package", - PermissibleValue(text="vnd.shana.informed.package")) - setattr(cls, "vnd.shootproof+json", - PermissibleValue(text="vnd.shootproof+json")) - setattr(cls, "vnd.shopkick+json", - PermissibleValue(text="vnd.shopkick+json")) - setattr(cls, "vnd.shp", - PermissibleValue(text="vnd.shp")) - setattr(cls, "vnd.shx", - PermissibleValue(text="vnd.shx")) - setattr(cls, "vnd.sigrok.session", - PermissibleValue(text="vnd.sigrok.session")) - setattr(cls, "vnd.SimTech-MindMapper", - PermissibleValue(text="vnd.SimTech-MindMapper")) - setattr(cls, "vnd.siren+json", - PermissibleValue(text="vnd.siren+json")) - setattr(cls, "vnd.smaf", - PermissibleValue(text="vnd.smaf")) - setattr(cls, "vnd.smart.notebook", - PermissibleValue(text="vnd.smart.notebook")) - setattr(cls, "vnd.smart.teacher", - PermissibleValue(text="vnd.smart.teacher")) - setattr(cls, "vnd.smintio.portals.archive", - PermissibleValue(text="vnd.smintio.portals.archive")) - setattr(cls, "vnd.snesdev-page-table", - PermissibleValue(text="vnd.snesdev-page-table")) - setattr(cls, "vnd.software602.filler.form+xml", - PermissibleValue(text="vnd.software602.filler.form+xml")) - setattr(cls, "vnd.software602.filler.form-xml-zip", - PermissibleValue(text="vnd.software602.filler.form-xml-zip")) - setattr(cls, "vnd.solent.sdkm+xml", - PermissibleValue(text="vnd.solent.sdkm+xml")) - setattr(cls, "vnd.spotfire.dxp", - PermissibleValue(text="vnd.spotfire.dxp")) - setattr(cls, "vnd.spotfire.sfs", - PermissibleValue(text="vnd.spotfire.sfs")) - setattr(cls, "vnd.sqlite3", - PermissibleValue(text="vnd.sqlite3")) - setattr(cls, "vnd.sss-cod", - PermissibleValue(text="vnd.sss-cod")) - setattr(cls, "vnd.sss-dtf", - PermissibleValue(text="vnd.sss-dtf")) - setattr(cls, "vnd.sss-ntf", - PermissibleValue(text="vnd.sss-ntf")) - setattr(cls, "vnd.stepmania.package", - PermissibleValue(text="vnd.stepmania.package")) - setattr(cls, "vnd.stepmania.stepchart", - PermissibleValue(text="vnd.stepmania.stepchart")) - setattr(cls, "vnd.street-stream", - PermissibleValue(text="vnd.street-stream")) - setattr(cls, "vnd.sun.wadl+xml", - PermissibleValue(text="vnd.sun.wadl+xml")) - setattr(cls, "vnd.sus-calendar", - PermissibleValue(text="vnd.sus-calendar")) - setattr(cls, "vnd.svd", - PermissibleValue(text="vnd.svd")) - setattr(cls, "vnd.swiftview-ics", - PermissibleValue(text="vnd.swiftview-ics")) - setattr(cls, "vnd.sybyl.mol2", - PermissibleValue(text="vnd.sybyl.mol2")) - setattr(cls, "vnd.sycle+xml", - PermissibleValue(text="vnd.sycle+xml")) - setattr(cls, "vnd.syft+json", - PermissibleValue(text="vnd.syft+json")) - setattr(cls, "vnd.syncml.dm.notification", - PermissibleValue(text="vnd.syncml.dm.notification")) - setattr(cls, "vnd.syncml.dmddf+xml", - PermissibleValue(text="vnd.syncml.dmddf+xml")) - setattr(cls, "vnd.syncml.dmtnds+wbxml", - PermissibleValue(text="vnd.syncml.dmtnds+wbxml")) - setattr(cls, "vnd.syncml.dmtnds+xml", - PermissibleValue(text="vnd.syncml.dmtnds+xml")) - setattr(cls, "vnd.syncml.dmddf+wbxml", - PermissibleValue(text="vnd.syncml.dmddf+wbxml")) - setattr(cls, "vnd.syncml.dm+wbxml", - PermissibleValue(text="vnd.syncml.dm+wbxml")) - setattr(cls, "vnd.syncml.dm+xml", - PermissibleValue(text="vnd.syncml.dm+xml")) - setattr(cls, "vnd.syncml.ds.notification", - PermissibleValue(text="vnd.syncml.ds.notification")) - setattr(cls, "vnd.syncml+xml", - PermissibleValue(text="vnd.syncml+xml")) - setattr(cls, "vnd.tableschema+json", - PermissibleValue(text="vnd.tableschema+json")) - setattr(cls, "vnd.tao.intent-module-archive", - PermissibleValue(text="vnd.tao.intent-module-archive")) - setattr(cls, "vnd.tcpdump.pcap", - PermissibleValue(text="vnd.tcpdump.pcap")) - setattr(cls, "vnd.think-cell.ppttc+json", - PermissibleValue(text="vnd.think-cell.ppttc+json")) - setattr(cls, "vnd.tml", - PermissibleValue(text="vnd.tml")) - setattr(cls, "vnd.tmd.mediaflex.api+xml", - PermissibleValue(text="vnd.tmd.mediaflex.api+xml")) - setattr(cls, "vnd.tmobile-livetv", - PermissibleValue(text="vnd.tmobile-livetv")) - setattr(cls, "vnd.tri.onesource", - PermissibleValue(text="vnd.tri.onesource")) - setattr(cls, "vnd.trid.tpt", - PermissibleValue(text="vnd.trid.tpt")) - setattr(cls, "vnd.triscape.mxs", - PermissibleValue(text="vnd.triscape.mxs")) - setattr(cls, "vnd.trueapp", - PermissibleValue(text="vnd.trueapp")) - setattr(cls, "vnd.truedoc", - PermissibleValue(text="vnd.truedoc")) - setattr(cls, "vnd.ubisoft.webplayer", - PermissibleValue(text="vnd.ubisoft.webplayer")) - setattr(cls, "vnd.ufdl", - PermissibleValue(text="vnd.ufdl")) - setattr(cls, "vnd.uiq.theme", - PermissibleValue(text="vnd.uiq.theme")) - setattr(cls, "vnd.umajin", - PermissibleValue(text="vnd.umajin")) - setattr(cls, "vnd.unity", - PermissibleValue(text="vnd.unity")) - setattr(cls, "vnd.uoml+xml", - PermissibleValue(text="vnd.uoml+xml")) - setattr(cls, "vnd.uplanet.alert", - PermissibleValue(text="vnd.uplanet.alert")) - setattr(cls, "vnd.uplanet.alert-wbxml", - PermissibleValue(text="vnd.uplanet.alert-wbxml")) - setattr(cls, "vnd.uplanet.bearer-choice", - PermissibleValue(text="vnd.uplanet.bearer-choice")) - setattr(cls, "vnd.uplanet.bearer-choice-wbxml", - PermissibleValue(text="vnd.uplanet.bearer-choice-wbxml")) - setattr(cls, "vnd.uplanet.cacheop", - PermissibleValue(text="vnd.uplanet.cacheop")) - setattr(cls, "vnd.uplanet.cacheop-wbxml", - PermissibleValue(text="vnd.uplanet.cacheop-wbxml")) - setattr(cls, "vnd.uplanet.channel", - PermissibleValue(text="vnd.uplanet.channel")) - setattr(cls, "vnd.uplanet.channel-wbxml", - PermissibleValue(text="vnd.uplanet.channel-wbxml")) - setattr(cls, "vnd.uplanet.list", - PermissibleValue(text="vnd.uplanet.list")) - setattr(cls, "vnd.uplanet.listcmd", - PermissibleValue(text="vnd.uplanet.listcmd")) - setattr(cls, "vnd.uplanet.listcmd-wbxml", - PermissibleValue(text="vnd.uplanet.listcmd-wbxml")) - setattr(cls, "vnd.uplanet.list-wbxml", - PermissibleValue(text="vnd.uplanet.list-wbxml")) - setattr(cls, "vnd.uri-map", - PermissibleValue(text="vnd.uri-map")) - setattr(cls, "vnd.uplanet.signal", - PermissibleValue(text="vnd.uplanet.signal")) - setattr(cls, "vnd.valve.source.material", - PermissibleValue(text="vnd.valve.source.material")) - setattr(cls, "vnd.vcx", - PermissibleValue(text="vnd.vcx")) - setattr(cls, "vnd.vd-study", - PermissibleValue(text="vnd.vd-study")) - setattr(cls, "vnd.vectorworks", - PermissibleValue(text="vnd.vectorworks")) - setattr(cls, "vnd.vel+json", - PermissibleValue(text="vnd.vel+json")) - setattr(cls, "vnd.verimatrix.vcas", - PermissibleValue(text="vnd.verimatrix.vcas")) - setattr(cls, "vnd.veritone.aion+json", - PermissibleValue(text="vnd.veritone.aion+json")) - setattr(cls, "vnd.veryant.thin", - PermissibleValue(text="vnd.veryant.thin")) - setattr(cls, "vnd.ves.encrypted", - PermissibleValue(text="vnd.ves.encrypted")) - setattr(cls, "vnd.vidsoft.vidconference", - PermissibleValue(text="vnd.vidsoft.vidconference")) - setattr(cls, "vnd.visio", - PermissibleValue(text="vnd.visio")) - setattr(cls, "vnd.visionary", - PermissibleValue(text="vnd.visionary")) - setattr(cls, "vnd.vividence.scriptfile", - PermissibleValue(text="vnd.vividence.scriptfile")) - setattr(cls, "vnd.vsf", - PermissibleValue(text="vnd.vsf")) - setattr(cls, "vnd.wap.sic", - PermissibleValue(text="vnd.wap.sic")) - setattr(cls, "vnd.wap.slc", - PermissibleValue(text="vnd.wap.slc")) - setattr(cls, "vnd.wap.wbxml", - PermissibleValue(text="vnd.wap.wbxml")) - setattr(cls, "vnd.wap.wmlc", - PermissibleValue(text="vnd.wap.wmlc")) - setattr(cls, "vnd.wap.wmlscriptc", - PermissibleValue(text="vnd.wap.wmlscriptc")) - setattr(cls, "vnd.wasmflow.wafl", - PermissibleValue(text="vnd.wasmflow.wafl")) - setattr(cls, "vnd.webturbo", - PermissibleValue(text="vnd.webturbo")) - setattr(cls, "vnd.wfa.dpp", - PermissibleValue(text="vnd.wfa.dpp")) - setattr(cls, "vnd.wfa.p2p", - PermissibleValue(text="vnd.wfa.p2p")) - setattr(cls, "vnd.wfa.wsc", - PermissibleValue(text="vnd.wfa.wsc")) - setattr(cls, "vnd.windows.devicepairing", - PermissibleValue(text="vnd.windows.devicepairing")) - setattr(cls, "vnd.wmc", - PermissibleValue(text="vnd.wmc")) - setattr(cls, "vnd.wmf.bootstrap", - PermissibleValue(text="vnd.wmf.bootstrap")) - setattr(cls, "vnd.wolfram.mathematica", - PermissibleValue(text="vnd.wolfram.mathematica")) - setattr(cls, "vnd.wolfram.mathematica.package", - PermissibleValue(text="vnd.wolfram.mathematica.package")) - setattr(cls, "vnd.wolfram.player", - PermissibleValue(text="vnd.wolfram.player")) - setattr(cls, "vnd.wordlift", - PermissibleValue(text="vnd.wordlift")) - setattr(cls, "vnd.wordperfect", - PermissibleValue(text="vnd.wordperfect")) - setattr(cls, "vnd.wqd", - PermissibleValue(text="vnd.wqd")) - setattr(cls, "vnd.wrq-hp3000-labelled", - PermissibleValue(text="vnd.wrq-hp3000-labelled")) - setattr(cls, "vnd.wt.stf", - PermissibleValue(text="vnd.wt.stf")) - setattr(cls, "vnd.wv.csp+xml", - PermissibleValue(text="vnd.wv.csp+xml")) - setattr(cls, "vnd.wv.csp+wbxml", - PermissibleValue(text="vnd.wv.csp+wbxml")) - setattr(cls, "vnd.wv.ssp+xml", - PermissibleValue(text="vnd.wv.ssp+xml")) - setattr(cls, "vnd.xacml+json", - PermissibleValue(text="vnd.xacml+json")) - setattr(cls, "vnd.xara", - PermissibleValue(text="vnd.xara")) - setattr(cls, "vnd.xfdl", - PermissibleValue(text="vnd.xfdl")) - setattr(cls, "vnd.xfdl.webform", - PermissibleValue(text="vnd.xfdl.webform")) - setattr(cls, "vnd.xmi+xml", - PermissibleValue(text="vnd.xmi+xml")) - setattr(cls, "vnd.xmpie.cpkg", - PermissibleValue(text="vnd.xmpie.cpkg")) - setattr(cls, "vnd.xmpie.dpkg", - PermissibleValue(text="vnd.xmpie.dpkg")) - setattr(cls, "vnd.xmpie.plan", - PermissibleValue(text="vnd.xmpie.plan")) - setattr(cls, "vnd.xmpie.ppkg", - PermissibleValue(text="vnd.xmpie.ppkg")) - setattr(cls, "vnd.xmpie.xlim", - PermissibleValue(text="vnd.xmpie.xlim")) - setattr(cls, "vnd.yamaha.hv-dic", - PermissibleValue(text="vnd.yamaha.hv-dic")) - setattr(cls, "vnd.yamaha.hv-script", - PermissibleValue(text="vnd.yamaha.hv-script")) - setattr(cls, "vnd.yamaha.hv-voice", - PermissibleValue(text="vnd.yamaha.hv-voice")) - setattr(cls, "vnd.yamaha.openscoreformat.osfpvg+xml", - PermissibleValue(text="vnd.yamaha.openscoreformat.osfpvg+xml")) - setattr(cls, "vnd.yamaha.openscoreformat", - PermissibleValue(text="vnd.yamaha.openscoreformat")) - setattr(cls, "vnd.yamaha.remote-setup", - PermissibleValue(text="vnd.yamaha.remote-setup")) - setattr(cls, "vnd.yamaha.smaf-audio", - PermissibleValue(text="vnd.yamaha.smaf-audio")) - setattr(cls, "vnd.yamaha.smaf-phrase", - PermissibleValue(text="vnd.yamaha.smaf-phrase")) - setattr(cls, "vnd.yamaha.through-ngn", - PermissibleValue(text="vnd.yamaha.through-ngn")) - setattr(cls, "vnd.yamaha.tunnel-udpencap", - PermissibleValue(text="vnd.yamaha.tunnel-udpencap")) - setattr(cls, "vnd.yaoweme", - PermissibleValue(text="vnd.yaoweme")) - setattr(cls, "vnd.yellowriver-custom-menu", - PermissibleValue(text="vnd.yellowriver-custom-menu")) - setattr(cls, "vnd.youtube.yt (OBSOLETED in favor of video/vnd.youtube.yt)", - PermissibleValue(text="vnd.youtube.yt (OBSOLETED in favor of video/vnd.youtube.yt)")) - setattr(cls, "vnd.zul", - PermissibleValue(text="vnd.zul")) - setattr(cls, "vnd.zzazz.deck+xml", - PermissibleValue(text="vnd.zzazz.deck+xml")) - setattr(cls, "voicexml+xml", - PermissibleValue(text="voicexml+xml")) - setattr(cls, "voucher-cms+json", - PermissibleValue(text="voucher-cms+json")) - setattr(cls, "vq-rtcpxr", - PermissibleValue(text="vq-rtcpxr")) - setattr(cls, "watcherinfo+xml", - PermissibleValue(text="watcherinfo+xml")) - setattr(cls, "webpush-options+json", - PermissibleValue(text="webpush-options+json")) - setattr(cls, "whoispp-query", - PermissibleValue(text="whoispp-query")) - setattr(cls, "whoispp-response", - PermissibleValue(text="whoispp-response")) - setattr(cls, "wordperfect5.1", - PermissibleValue(text="wordperfect5.1")) - setattr(cls, "wsdl+xml", - PermissibleValue(text="wsdl+xml")) - setattr(cls, "wspolicy+xml", - PermissibleValue(text="wspolicy+xml")) - setattr(cls, "x-pki-message", - PermissibleValue(text="x-pki-message")) - setattr(cls, "x-www-form-urlencoded", - PermissibleValue(text="x-www-form-urlencoded")) - setattr(cls, "x-x509-ca-cert", - PermissibleValue(text="x-x509-ca-cert")) - setattr(cls, "x-x509-ca-ra-cert", - PermissibleValue(text="x-x509-ca-ra-cert")) - setattr(cls, "x-x509-next-ca-cert", - PermissibleValue(text="x-x509-next-ca-cert")) - setattr(cls, "x400-bp", - PermissibleValue(text="x400-bp")) - setattr(cls, "xacml+xml", - PermissibleValue(text="xacml+xml")) - setattr(cls, "xcap-att+xml", - PermissibleValue(text="xcap-att+xml")) - setattr(cls, "xcap-caps+xml", - PermissibleValue(text="xcap-caps+xml")) - setattr(cls, "xcap-diff+xml", - PermissibleValue(text="xcap-diff+xml")) - setattr(cls, "xcap-el+xml", - PermissibleValue(text="xcap-el+xml")) - setattr(cls, "xcap-error+xml", - PermissibleValue(text="xcap-error+xml")) - setattr(cls, "xcap-ns+xml", - PermissibleValue(text="xcap-ns+xml")) - setattr(cls, "xcon-conference-info-diff+xml", - PermissibleValue(text="xcon-conference-info-diff+xml")) - setattr(cls, "xcon-conference-info+xml", - PermissibleValue(text="xcon-conference-info+xml")) - setattr(cls, "xenc+xml", - PermissibleValue(text="xenc+xml")) - setattr(cls, "xhtml+xml", - PermissibleValue(text="xhtml+xml")) - setattr(cls, "xliff+xml", - PermissibleValue(text="xliff+xml")) - setattr(cls, "xml-dtd", - PermissibleValue(text="xml-dtd")) - setattr(cls, "xml-patch+xml", - PermissibleValue(text="xml-patch+xml")) - setattr(cls, "xmpp+xml", - PermissibleValue(text="xmpp+xml")) - setattr(cls, "xop+xml", - PermissibleValue(text="xop+xml")) - setattr(cls, "xslt+xml", - PermissibleValue(text="xslt+xml")) - setattr(cls, "xv+xml", - PermissibleValue(text="xv+xml")) - setattr(cls, "yang-data+cbor", - PermissibleValue(text="yang-data+cbor")) - setattr(cls, "yang-data+json", - PermissibleValue(text="yang-data+json")) - setattr(cls, "yang-data+xml", - PermissibleValue(text="yang-data+xml")) - setattr(cls, "yang-patch+json", - PermissibleValue(text="yang-patch+json")) - setattr(cls, "yang-patch+xml", - PermissibleValue(text="yang-patch+xml")) - setattr(cls, "yin+xml", - PermissibleValue(text="yin+xml")) - class ProvisionTypes(EnumDefinitionImpl): private = PermissibleValue( @@ -11606,121 +35623,7 @@ def _addvals(cls): text="hw-partitioned", description="TBD")) -class ContainerFormat(EnumDefinitionImpl): - """ - Possible values for container image format. - """ - dockerv1 = PermissibleValue( - text="dockerv1", - description="Container is packaged with Docker v1 format.") - dockerv2 = PermissibleValue( - text="dockerv2", - description="Container is packaged with Docker v2 format.") - oci = PermissibleValue( - text="oci", - description="Container is packaged with OCI format.") - lxc = PermissibleValue( - text="lxc", - description="Container is packaged with LXC format.") - lxd = PermissibleValue( - text="lxd", - description="Container is packaged with LXD format.") - - _defn = EnumDefinition( - name="ContainerFormat", - description="Possible values for container image format.", - ) - -class ProtectionFrequency(EnumDefinitionImpl): - - Hourly = PermissibleValue( - text="Hourly", - description="For describing protection policies triggered once an hour") - Daily = PermissibleValue( - text="Daily", - description="For describing protection policies triggered once a day") - Weekly = PermissibleValue( - text="Weekly", - description="For describing protection policies triggered once a week") - Monthly = PermissibleValue( - text="Monthly", - description="For describing protection policies triggered once a month") - Continuously = PermissibleValue( - text="Continuously", - description="For describing protection policies triggered continuously, ie each time data are modified") - OnDemand = PermissibleValue( - text="OnDemand", - description="For describing unplanned protection policies triggered on demand") - - _defn = EnumDefinition( - name="ProtectionFrequency", - ) - -class ProtectionMethod(EnumDefinitionImpl): - - Incremental = PermissibleValue( - text="Incremental", - description="""For describing protection through differential copy of protected data, ie only modifications are copied""") - - _defn = EnumDefinition( - name="ProtectionMethod", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "Full-Copy", - PermissibleValue( - text="Full-Copy", - description="For describing protection through full copy of protected data")) - -class GeoReplicationScope(EnumDefinitionImpl): - - _defn = EnumDefinition( - name="GeoReplicationScope", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "Cross-Region", - PermissibleValue( - text="Cross-Region", - description="Whenever replication is span across multiple regions")) - setattr(cls, "Cross-DC", - PermissibleValue( - text="Cross-DC", - description="Whenever replication is span across multiple datacenters within a region")) - setattr(cls, "Cross-AZ", - PermissibleValue( - text="Cross-AZ", - description="Whenever replication is span across multiple availability zones")) - -class ConsistencyType(EnumDefinitionImpl): - - Strong = PermissibleValue( - text="Strong", - description="""Strong consistency model, cf https://en.wikipedia.org/wiki/Consistency_model#Strong_consistency_models.""") - Session = PermissibleValue( - text="Session", - description="""Eventual consistency model, cf https://en.wikipedia.org/wiki/Consistency_model#Session_guarantees.""") - Eventual = PermissibleValue( - text="Eventual", - description="Eventual consistency model, cf https://en.wikipedia.org/wiki/Eventual_consistency.") - Other = PermissibleValue( - text="Other", - description="Unspecified consistency model.") - - _defn = EnumDefinition( - name="ConsistencyType", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "Bounded-Staleness", - PermissibleValue( - text="Bounded-Staleness", - description="""Consistency model where the lag between replicas is bounded, either by a number of updates or a time limit.""")) - -class StorageRedundancyMechanism(EnumDefinitionImpl): +class RAIDLevel(EnumDefinitionImpl): RAID0 = PermissibleValue( text="RAID0", @@ -11746,17 +35649,37 @@ class StorageRedundancyMechanism(EnumDefinitionImpl): HybridRAID = PermissibleValue( text="HybridRAID", description="Other hybrid or nested RAID combinations, cf https://en.wikipedia.org/wiki/Nested_RAID_levels") - RS_Code = PermissibleValue( - text="RS_Code", - description="""Reed-Solomon Erasure Code, cf https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction""") Other = PermissibleValue( text="Other", description="Unspecified redundancy mechanism") _defn = EnumDefinition( - name="StorageRedundancyMechanism", + name="RAIDLevel", + ) + +class ErasureCode(EnumDefinitionImpl): + + LDPC = PermissibleValue( + text="LDPC", + description="Low-density parity-check code, cf https://en.wikipedia.org/wiki/Low-density_parity-check_code") + Turbo = PermissibleValue( + text="Turbo", + description="Turbo Code, cf https://en.wikipedia.org/wiki/Turbo_code") + Others = PermissibleValue( + text="Others", + description="Other erasure codes") + + _defn = EnumDefinition( + name="ErasureCode", ) + @classmethod + def _addvals(cls): + setattr(cls, "Reed-Solomon", + PermissibleValue( + text="Reed-Solomon", + description="""Reed-Solomon Erasure Code, cf https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction""")) + class FileAccessProtocol(EnumDefinitionImpl): NFSv3 = PermissibleValue( @@ -11919,12 +35842,100 @@ class CompressionAlgorithm(EnumDefinitionImpl): description="Entropy encoding algorithm, cf https://en.wikipedia.org/wiki/Asymmetric_numeral_systems") Other = PermissibleValue( text="Other", - description="Unspecified compression algorithm") + description="Unspecified compression algorithm") + + _defn = EnumDefinition( + name="CompressionAlgorithm", + ) + +class GeoReplicationScope(EnumDefinitionImpl): + + _defn = EnumDefinition( + name="GeoReplicationScope", + ) + + @classmethod + def _addvals(cls): + setattr(cls, "Cross-Region", + PermissibleValue( + text="Cross-Region", + description="Whenever replication is span across multiple regions")) + setattr(cls, "Cross-DC", + PermissibleValue( + text="Cross-DC", + description="Whenever replication is span across multiple datacenters within one region")) + setattr(cls, "Cross-AZ", + PermissibleValue( + text="Cross-AZ", + description="Whenever replication is span across multiple availability zones within one datacenter.")) + +class BackupFrequency(EnumDefinitionImpl): + + Hourly = PermissibleValue( + text="Hourly", + description="For describing protection policies triggered once an hour") + Daily = PermissibleValue( + text="Daily", + description="For describing protection policies triggered once a day") + Weekly = PermissibleValue( + text="Weekly", + description="For describing protection policies triggered once a week") + Monthly = PermissibleValue( + text="Monthly", + description="For describing protection policies triggered once a month") + Continuously = PermissibleValue( + text="Continuously", + description="For describing protection policies triggered continuously, ie each time data are modified") + OnDemand = PermissibleValue( + text="OnDemand", + description="For describing unplanned protection policies triggered on demand") + + _defn = EnumDefinition( + name="BackupFrequency", + ) + +class BackupMethod(EnumDefinitionImpl): + + Full = PermissibleValue( + text="Full", + description="Saves full copy of data.") + Incremental = PermissibleValue( + text="Incremental", + description="Saves changes since the last backup, only.") + Differential = PermissibleValue( + text="Differential", + description="Saves changes since the last full backup, only.") + + _defn = EnumDefinition( + name="BackupMethod", + ) + +class ConsistencyType(EnumDefinitionImpl): + + Strong = PermissibleValue( + text="Strong", + description="""Strong consistency model, cf https://en.wikipedia.org/wiki/Consistency_model#Strong_consistency_models.""") + Session = PermissibleValue( + text="Session", + description="""Eventual consistency model, cf https://en.wikipedia.org/wiki/Consistency_model#Session_guarantees.""") + Eventual = PermissibleValue( + text="Eventual", + description="Eventual consistency model, cf https://en.wikipedia.org/wiki/Eventual_consistency.") + Other = PermissibleValue( + text="Other", + description="Unspecified consistency model.") _defn = EnumDefinition( - name="CompressionAlgorithm", + name="ConsistencyType", ) + @classmethod + def _addvals(cls): + setattr(cls, "Bounded-Staleness", + PermissibleValue( + text="Bounded-Staleness", + description="""Consistency model where the lag between replicas is bounded, either by a number of updates or a time limit.""")) + class AccessAttribute(EnumDefinitionImpl): _defn = EnumDefinition( @@ -11972,149 +35983,31 @@ def _addvals(cls): text="Azure-Blob", description="Azure Blob API")) -class PublicIpAddressProvisioningTypes(EnumDefinitionImpl): - - floating = PermissibleValue( - text="floating", - description="TBD") - fixed = PermissibleValue( - text="fixed", - description="TBD") - - _defn = EnumDefinition( - name="PublicIpAddressProvisioningTypes", - ) - - @classmethod - def _addvals(cls): - setattr(cls, "provider-network", - PermissibleValue( - text="provider-network", - description="TBD")) - -class IpVersionTypes(EnumDefinitionImpl): - - IPv4 = PermissibleValue(text="IPv4") - IPv6 = PermissibleValue(text="IPv6") - - _defn = EnumDefinition( - name="IpVersionTypes", - ) - -class ProtocolType(EnumDefinitionImpl): - - Ethernet = PermissibleValue( - text="Ethernet", - description="TBD") - ARP = PermissibleValue( - text="ARP", - description="TBD") - PPP = PermissibleValue( - text="PPP", - description="TBD") - VLAN = PermissibleValue( - text="VLAN", - description="TBD") - Other = PermissibleValue( - text="Other", - description="TBD") - - _defn = EnumDefinition( - name="ProtocolType", - ) - -class IPIType(EnumDefinitionImpl): - - Physical = PermissibleValue( - text="Physical", - description="TBD") - Link = PermissibleValue( - text="Link", - description="TBD") - URI = PermissibleValue( - text="URI", - description="TBD") - Network = PermissibleValue( - text="Network", - description="TBD") - Other = PermissibleValue( - text="Other", - description="TBD") - - _defn = EnumDefinition( - name="IPIType", - ) - -class VlanType(EnumDefinitionImpl): - - qinq = PermissibleValue( - text="qinq", - description="TBD") - dot1q = PermissibleValue( - text="dot1q", - description="TBD") - other = PermissibleValue( - text="other", - description="TBD") - - _defn = EnumDefinition( - name="VlanType", - ) - -class ComputeFunctionDeploymentMethod(EnumDefinitionImpl): - """ - Methods for deploying compute function code. - """ - inlineEditor = PermissibleValue( - text="inlineEditor", - description="Use of the integrated code editor") - gitLab = PermissibleValue( - text="gitLab", - description="Import code from a gitLab repository") - objectStorage = PermissibleValue( - text="objectStorage", - description="Import code from an object storage bucket") - integratedRepo = PermissibleValue( - text="integratedRepo", - description="Import code from an integrated code repository service") - other = PermissibleValue( - text="other", - description="Other/Unspecified method") - - _defn = EnumDefinition( - name="ComputeFunctionDeploymentMethod", - description="Methods for deploying compute function code.", - ) - -class ComputeFunctionLanguage(EnumDefinitionImpl): +class PolicyLanguageEnum(EnumDefinitionImpl): """ - Language runtime for compute function code. + Enumeration of (non-exhaustive) possible policy languages. """ - golang = PermissibleValue( - text="golang", - description="GO runtime") - python = PermissibleValue( - text="python", - description="Python runtime") - jre = PermissibleValue( - text="jre", - description="Java runtime") - other = PermissibleValue( - text="other", - description="Other/Unspecified language") + ODRL = PermissibleValue( + text="ODRL", + description="Open Digital Rights Language") + XACML = PermissibleValue( + text="XACML", + description="eXtensible Access Control Markup Language") + Rego = PermissibleValue( + text="Rego", + description="Policy language for Open Policy Agent (OPA)") + JSON = PermissibleValue( + text="JSON", + description="JSON-based policy language") + Other = PermissibleValue( + text="Other", + description="Other policy language not listed") _defn = EnumDefinition( - name="ComputeFunctionLanguage", - description="Language runtime for compute function code.", + name="PolicyLanguageEnum", + description="Enumeration of (non-exhaustive) possible policy languages.", ) - @classmethod - def _addvals(cls): - setattr(cls, "node.js", - PermissibleValue( - text="node.js", - description="Node.js runtime (javascript)")) - class FirmType(EnumDefinitionImpl): """ Possible values for VM image's firmetype required by hypervisor. @@ -12192,13 +36085,268 @@ class VMDiskType(EnumDefinitionImpl): CVF = PermissibleValue(text="CVF") CVA = PermissibleValue(text="CVA") - _defn = EnumDefinition( - name="VMDiskType", - ) + _defn = EnumDefinition( + name="VMDiskType", + ) + +# Slots +class slots: + pass + +slots.participants = Slot(uri=GX.participants, name="participants", curie=GX.curie('participants'), + model_uri=GX.participants, domain=None, range=Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]) + +slots.interconnectionPointIdentifier = Slot(uri=GX.interconnectionPointIdentifier, name="interconnectionPointIdentifier", curie=GX.curie('interconnectionPointIdentifier'), + model_uri=GX.interconnectionPointIdentifier, domain=None, range=Union[str, InterconnectionPointIdentifierCompleteIPI]) + +slots.distributions = Slot(uri=DCT.distribution, name="distributions", curie=DCT.curie('distribution'), + model_uri=GX.distributions, domain=None, range=Optional[Union[Union[dict, Distribution], List[Union[dict, Distribution]]]]) + +slots.providedBy = Slot(uri=GX.providedBy, name="providedBy", curie=GX.curie('providedBy'), + model_uri=GX.providedBy, domain=None, range=Optional[str]) + +slots.termsAndConditions = Slot(uri=GX.termsAndConditions, name="termsAndConditions", curie=GX.curie('termsAndConditions'), + model_uri=GX.termsAndConditions, domain=None, range=Optional[str]) + +slots.licenses = Slot(uri=DCT.license, name="licenses", curie=DCT.curie('license'), + model_uri=GX.licenses, domain=None, range=Optional[Union[str, List[str]]]) + +slots.title = Slot(uri=DCT.title, name="title", curie=DCT.curie('title'), + model_uri=GX.title, domain=None, range=Optional[str]) + +slots.description = Slot(uri=DCT.description, name="description", curie=DCT.curie('description'), + model_uri=GX.description, domain=None, range=Optional[str]) + +slots.issued = Slot(uri=DCT.issued, name="issued", curie=DCT.curie('issued'), + model_uri=GX.issued, domain=None, range=Optional[Union[str, XSDDate]]) + +slots.obsoleteDateTime = Slot(uri=GX.obsoleteDateTime, name="obsoleteDateTime", curie=GX.curie('obsoleteDateTime'), + model_uri=GX.obsoleteDateTime, domain=None, range=Optional[Union[str, XSDDateTime]]) + +slots.hasPolicy = Slot(uri=ODRL.hasPolicy, name="hasPolicy", curie=ODRL.curie('hasPolicy'), + model_uri=GX.hasPolicy, domain=None, range=Optional[str]) + +slots.dataLicensors = Slot(uri=GX.dataLicensors, name="dataLicensors", curie=GX.curie('dataLicensors'), + model_uri=GX.dataLicensors, domain=None, range=Optional[Union[Union[str, DataLicensorRegistrationNumber], List[Union[str, DataLicensorRegistrationNumber]]]]) + +slots.identifier = Slot(uri=DCT.identifier, name="identifier", curie=DCT.curie('identifier'), + model_uri=GX.identifier, domain=None, range=Optional[str]) + +slots.contactPoint = Slot(uri=DCAT.contactPoint, name="contactPoint", curie=DCAT.curie('contactPoint'), + model_uri=GX.contactPoint, domain=None, range=Optional[str]) + +slots.conformsTo = Slot(uri=DCT.conformsTo, name="conformsTo", curie=DCT.curie('conformsTo'), + model_uri=GX.conformsTo, domain=None, range=Optional[str]) + +slots.expirationDateTime = Slot(uri=GX.expirationDateTime, name="expirationDateTime", curie=GX.curie('expirationDateTime'), + model_uri=GX.expirationDateTime, domain=None, range=Optional[Union[str, XSDDateTime]]) + +slots.exposedThrough = Slot(uri=GX.exposedThrough, name="exposedThrough", curie=GX.curie('exposedThrough'), + model_uri=GX.exposedThrough, domain=None, range=Optional[str]) + +slots.format = Slot(uri=DCT.format, name="format", curie=DCT.curie('format'), + model_uri=GX.format, domain=None, range=Optional[str]) + +slots.compressFormat = Slot(uri=DCAT.compressFormat, name="compressFormat", curie=DCAT.curie('compressFormat'), + model_uri=GX.compressFormat, domain=None, range=Optional[str]) + +slots.packageFormat = Slot(uri=DCAT.packageFormat, name="packageFormat", curie=DCAT.curie('packageFormat'), + model_uri=GX.packageFormat, domain=None, range=Optional[str]) + +slots.byteSize = Slot(uri=DCAT.byteSize, name="byteSize", curie=DCAT.curie('byteSize'), + model_uri=GX.byteSize, domain=None, range=Optional[str]) + +slots.locations = Slot(uri=GX.location, name="locations", curie=GX.curie('location'), + model_uri=GX.locations, domain=None, range=Optional[Union[str, List[str]]]) + +slots.hash = Slot(uri=GX.hash, name="hash", curie=GX.curie('hash'), + model_uri=GX.hash, domain=None, range=Optional[str]) + +slots.hashAlgorithm = Slot(uri=GX.hashAlgorithm, name="hashAlgorithm", curie=GX.curie('hashAlgorithm'), + model_uri=GX.hashAlgorithm, domain=None, range=Optional[str]) + +slots.language = Slot(uri=DCT.language, name="language", curie=DCT.curie('language'), + model_uri=GX.language, domain=None, range=Optional[str]) + +slots.dataUsageAgreements = Slot(uri=GX.dataUsageAgreement, name="dataUsageAgreements", curie=GX.curie('dataUsageAgreement'), + model_uri=GX.dataUsageAgreements, domain=None, range=Optional[Union[Union[dict, DataUsageAgreement], List[Union[dict, DataUsageAgreement]]]]) + +slots.producedBy = Slot(uri=GX.producedBy, name="producedBy", curie=GX.curie('producedBy'), + model_uri=GX.producedBy, domain=None, range=Optional[Union[str, DataProducerRegistrationNumber]]) + +slots.licensedBy = Slot(uri=GX.licensedBy, name="licensedBy", curie=GX.curie('licensedBy'), + model_uri=GX.licensedBy, domain=None, range=Optional[Union[str, List[str]]]) + +slots.dataUsageAgreementTrustAnchor = Slot(uri=GX.dataUsageAgreementTrustAnchor, name="dataUsageAgreementTrustAnchor", curie=GX.curie('dataUsageAgreementTrustAnchor'), + model_uri=GX.dataUsageAgreementTrustAnchor, domain=None, range=Optional[str]) + +slots.aggregationOf = Slot(uri=GX.aggregationOf, name="aggregationOf", curie=GX.curie('aggregationOf'), + model_uri=GX.aggregationOf, domain=None, range=Optional[Union[Union[dict, DataSet], List[Union[dict, DataSet]]]]) + +slots.participantRole = Slot(uri=GX.participantRole, name="participantRole", curie=GX.curie('participantRole'), + model_uri=GX.participantRole, domain=None, range=Optional[str]) + +slots.mandatory = Slot(uri=GX.mandatory, name="mandatory", curie=GX.curie('mandatory'), + model_uri=GX.mandatory, domain=None, range=Optional[str]) + +slots.legalValidity = Slot(uri=GX.legalValidity, name="legalValidity", curie=GX.curie('legalValidity'), + model_uri=GX.legalValidity, domain=None, range=Optional[Union[bool, Bool]]) + +slots.consumedBy = Slot(uri=GX.consumedBy, name="consumedBy", curie=GX.curie('consumedBy'), + model_uri=GX.consumedBy, domain=None, range=Optional[str]) + +slots.dataProduct = Slot(uri=GX.dataProduct, name="dataProduct", curie=GX.curie('dataProduct'), + model_uri=GX.dataProduct, domain=None, range=Optional[str]) + +slots.signers = Slot(uri=GX.signers, name="signers", curie=GX.curie('signers'), + model_uri=GX.signers, domain=None, range=Optional[Union[Union[dict, SignatureCheckType], List[Union[dict, SignatureCheckType]]]]) + +slots.termOfUsage = Slot(uri=GX.termOfUsage, name="termOfUsage", curie=GX.curie('termOfUsage'), + model_uri=GX.termOfUsage, domain=None, range=Optional[str]) + +slots.notarizedIn = Slot(uri=GX['data-exchange-wg/notarizedIn'], name="notarizedIn", curie=GX.curie('data-exchange-wg/notarizedIn'), + model_uri=GX.notarizedIn, domain=None, range=Optional[str]) + +slots.dataUsage = Slot(uri=GX.dataUsage, name="dataUsage", curie=GX.curie('dataUsage'), + model_uri=GX.dataUsage, domain=None, range=Optional[str]) + +slots.loggingService = Slot(uri=GX.loggingService, name="loggingService", curie=GX.curie('loggingService'), + model_uri=GX.loggingService, domain=None, range=Optional[str]) + +slots.uid = Slot(uri=ODRL.uid, name="uid", curie=ODRL.curie('uid'), + model_uri=GX.uid, domain=None, range=Optional[str]) + +slots.profile = Slot(uri=ODRL.profile, name="profile", curie=ODRL.curie('profile'), + model_uri=GX.profile, domain=None, range=Optional[str]) + +slots.inheritFrom = Slot(uri=ODRL.inheritFrom, name="inheritFrom", curie=ODRL.curie('inheritFrom'), + model_uri=GX.inheritFrom, domain=None, range=Optional[str]) + +slots.relation = Slot(uri=ODRL.relation, name="relation", curie=ODRL.curie('relation'), + model_uri=GX.relation, domain=None, range=Optional[str]) + +slots.function = Slot(uri=ODRL.function, name="function", curie=ODRL.curie('function'), + model_uri=GX.function, domain=None, range=Optional[str]) + +slots.failure = Slot(uri=ODRL.failure, name="failure", curie=ODRL.curie('failure'), + model_uri=GX.failure, domain=None, range=Optional[str]) + +slots.conflict = Slot(uri=ODRL.conflict, name="conflict", curie=ODRL.curie('conflict'), + model_uri=GX.conflict, domain=None, range=Optional[str]) + +slots.perm = Slot(uri=ODRL.perm, name="perm", curie=ODRL.curie('perm'), + model_uri=GX.perm, domain=None, range=Optional[str]) + +slots.prohibit = Slot(uri=ODRL.prohibit, name="prohibit", curie=ODRL.curie('prohibit'), + model_uri=GX.prohibit, domain=None, range=Optional[str]) + +slots.invalid = Slot(uri=ODRL.invalid, name="invalid", curie=ODRL.curie('invalid'), + model_uri=GX.invalid, domain=None, range=Optional[str]) + +slots.AssetCollection = Slot(uri=ODRL.AssetCollection, name="AssetCollection", curie=ODRL.curie('AssetCollection'), + model_uri=GX.AssetCollection, domain=None, range=Optional[str]) + +slots.PartyCollection = Slot(uri=ODRL.PartyCollection, name="PartyCollection", curie=ODRL.curie('PartyCollection'), + model_uri=GX.PartyCollection, domain=None, range=Optional[str]) + +slots.assignee = Slot(uri=ODRL.assignee, name="assignee", curie=ODRL.curie('assignee'), + model_uri=GX.assignee, domain=None, range=Optional[str]) + +slots.assigner = Slot(uri=ODRL.assigner, name="assigner", curie=ODRL.curie('assigner'), + model_uri=GX.assigner, domain=None, range=Optional[str]) + +slots.assignerOf = Slot(uri=ODRL.assignerOf, name="assignerOf", curie=ODRL.curie('assignerOf'), + model_uri=GX.assignerOf, domain=None, range=Optional[str]) + +slots.assigneeOf = Slot(uri=ODRL.assigneeOf, name="assigneeOf", curie=ODRL.curie('assigneeOf'), + model_uri=GX.assigneeOf, domain=None, range=Optional[str]) + +slots.includedIn = Slot(uri=ODRL.includedIn, name="includedIn", curie=ODRL.curie('includedIn'), + model_uri=GX.includedIn, domain=None, range=Optional[str]) + +slots.implies = Slot(uri=ODRL.implies, name="implies", curie=ODRL.curie('implies'), + model_uri=GX.implies, domain=None, range=Optional[str]) + +slots.permission = Slot(uri=ODRL.permission, name="permission", curie=ODRL.curie('permission'), + model_uri=GX.permission, domain=None, range=Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]]) + +slots.prohibition = Slot(uri=ODRL.prohibition, name="prohibition", curie=ODRL.curie('prohibition'), + model_uri=GX.prohibition, domain=None, range=Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]]) + +slots.obligation = Slot(uri=ODRL.obligation, name="obligation", curie=ODRL.curie('obligation'), + model_uri=GX.obligation, domain=None, range=Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]]) + +slots.duty = Slot(uri=ODRL.duty, name="duty", curie=ODRL.curie('duty'), + model_uri=GX.duty, domain=None, range=Optional[Union[Union[dict, Rule], List[Union[dict, Rule]]]]) + +slots.consequence = Slot(uri=ODRL.consequence, name="consequence", curie=ODRL.curie('consequence'), + model_uri=GX.consequence, domain=None, range=Optional[str]) + +slots.remedy = Slot(uri=ODRL.remedy, name="remedy", curie=ODRL.curie('remedy'), + model_uri=GX.remedy, domain=None, range=Optional[str]) + +slots.refinement = Slot(uri=ODRL.refinement, name="refinement", curie=ODRL.curie('refinement'), + model_uri=GX.refinement, domain=None, range=Optional[str]) + +slots.operator = Slot(uri=ODRL.operator, name="operator", curie=ODRL.curie('operator'), + model_uri=GX.operator, domain=None, range=Optional[str]) + +slots.rightOperand = Slot(uri=ODRL.rightOperand, name="rightOperand", curie=ODRL.curie('rightOperand'), + model_uri=GX.rightOperand, domain=None, range=Optional[str]) + +slots.rightOperandReference = Slot(uri=ODRL.rightOperandReference, name="rightOperandReference", curie=ODRL.curie('rightOperandReference'), + model_uri=GX.rightOperandReference, domain=None, range=Optional[str]) + +slots.leftOperand = Slot(uri=ODRL.leftOperand, name="leftOperand", curie=ODRL.curie('leftOperand'), + model_uri=GX.leftOperand, domain=None, range=Optional[str]) + +slots.operand = Slot(uri=ODRL.operand, name="operand", curie=ODRL.curie('operand'), + model_uri=GX.operand, domain=None, range=Optional[str]) + +slots.eq = Slot(uri=ODRL.eq, name="eq", curie=ODRL.curie('eq'), + model_uri=GX.eq, domain=None, range=Optional[str]) + +slots.gt = Slot(uri=ODRL.gt, name="gt", curie=ODRL.curie('gt'), + model_uri=GX.gt, domain=None, range=Optional[str]) + +slots.gteq = Slot(uri=ODRL.gteq, name="gteq", curie=ODRL.curie('gteq'), + model_uri=GX.gteq, domain=None, range=Optional[str]) + +slots.lt = Slot(uri=ODRL.lt, name="lt", curie=ODRL.curie('lt'), + model_uri=GX.lt, domain=None, range=Optional[str]) + +slots.lteq = Slot(uri=ODRL.lteq, name="lteq", curie=ODRL.curie('lteq'), + model_uri=GX.lteq, domain=None, range=Optional[str]) + +slots.neq = Slot(uri=ODRL.neq, name="neq", curie=ODRL.curie('neq'), + model_uri=GX.neq, domain=None, range=Optional[str]) + +slots.isA = Slot(uri=ODRL.isA, name="isA", curie=ODRL.curie('isA'), + model_uri=GX.isA, domain=None, range=Optional[str]) + +slots.hasPart = Slot(uri=ODRL.hasPart, name="hasPart", curie=ODRL.curie('hasPart'), + model_uri=GX.hasPart, domain=None, range=Optional[str]) + +slots.isPartOf = Slot(uri=ODRL.isPartOf, name="isPartOf", curie=ODRL.curie('isPartOf'), + model_uri=GX.isPartOf, domain=None, range=Optional[str]) -# Slots -class slots: - pass +slots.isAllOf = Slot(uri=ODRL.isAllOf, name="isAllOf", curie=ODRL.curie('isAllOf'), + model_uri=GX.isAllOf, domain=None, range=Optional[str]) + +slots.isAnyOf = Slot(uri=ODRL.isAnyOf, name="isAnyOf", curie=ODRL.curie('isAnyOf'), + model_uri=GX.isAnyOf, domain=None, range=Optional[str]) + +slots.isNoneOf = Slot(uri=ODRL.isNoneOf, name="isNoneOf", curie=ODRL.curie('isNoneOf'), + model_uri=GX.isNoneOf, domain=None, range=Optional[str]) + +slots.xone = Slot(uri=ODRL.xone, name="xone", curie=ODRL.curie('xone'), + model_uri=GX.xone, domain=None, range=Optional[str]) + +slots.andSequence = Slot(uri=ODRL.andSequence, name="andSequence", curie=ODRL.curie('andSequence'), + model_uri=GX.andSequence, domain=None, range=Optional[str]) + +slots.metric = Slot(uri=GX.metric, name="metric", curie=GX.curie('metric'), + model_uri=GX.metric, domain=None, range=str) slots.value = Slot(uri=QUDT.value, name="value", curie=QUDT.curie('value'), model_uri=GX.value, domain=None, range=float) @@ -12206,21 +36354,33 @@ class slots: slots.unit = Slot(uri=QUDT.unit, name="unit", curie=QUDT.curie('unit'), model_uri=GX.unit, domain=None, range=str) +slots.maintainedBy = Slot(uri=GX.maintainedBy, name="maintainedBy", curie=GX.curie('maintainedBy'), + model_uri=GX.maintainedBy, domain=None, range=Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]) + +slots.aggregationOfResources = Slot(uri=GX.aggregationOfResources, name="aggregationOfResources", curie=GX.curie('aggregationOfResources'), + model_uri=GX.aggregationOfResources, domain=None, range=Optional[Union[str, List[str]]]) + slots.address__countryCode = Slot(uri=GX.countryCode, name="address__countryCode", curie=GX.curie('countryCode'), model_uri=GX.address__countryCode, domain=None, range=str) +slots.address__countryName = Slot(uri=GX.countryName, name="address__countryName", curie=GX.curie('countryName'), + model_uri=GX.address__countryName, domain=None, range=Optional[str]) + slots.address__gps = Slot(uri=GX.gps, name="address__gps", curie=GX.curie('gps'), model_uri=GX.address__gps, domain=None, range=Optional[Union[Union[dict, GPSLocation], List[Union[dict, GPSLocation]]]]) -slots.address__streetAddress = Slot(uri=VCARD['street-address'], name="address__streetAddress", curie=VCARD.curie('street-address'), +slots.address__streetAddress = Slot(uri=HTTPS_VCARD['street-address'], name="address__streetAddress", curie=HTTPS_VCARD.curie('street-address'), model_uri=GX.address__streetAddress, domain=None, range=Optional[str]) -slots.address__postalCode = Slot(uri=VCARD['postal-code'], name="address__postalCode", curie=VCARD.curie('postal-code'), +slots.address__postalCode = Slot(uri=HTTPS_VCARD['postal-code'], name="address__postalCode", curie=HTTPS_VCARD.curie('postal-code'), model_uri=GX.address__postalCode, domain=None, range=Optional[str]) -slots.address__locality = Slot(uri=VCARD.locality, name="address__locality", curie=VCARD.curie('locality'), +slots.address__locality = Slot(uri=HTTPS_VCARD.locality, name="address__locality", curie=HTTPS_VCARD.curie('locality'), model_uri=GX.address__locality, domain=None, range=Optional[str]) +slots.address__region = Slot(uri=GX.region, name="address__region", curie=GX.curie('region'), + model_uri=GX.address__region, domain=None, range=Optional[Union[str, "NUTS2Region"]]) + slots.gPSLocation__latitude = Slot(uri=GX.latitude, name="gPSLocation__latitude", curie=GX.curie('latitude'), model_uri=GX.gPSLocation__latitude, domain=None, range=str) @@ -12246,11 +36406,205 @@ class slots: slots.gPSUnit__decimals = Slot(uri=GX.decimals, name="gPSUnit__decimals", curie=GX.curie('decimals'), model_uri=GX.gPSUnit__decimals, domain=None, range=Optional[float]) -slots.gaiaXEntity__name = Slot(uri=GX.name, name="gaiaXEntity__name", curie=GX.curie('name'), - model_uri=GX.gaiaXEntity__name, domain=None, range=Optional[str]) +slots.availabilityZone__address = Slot(uri=GX.address, name="availabilityZone__address", curie=GX.curie('address'), + model_uri=GX.availabilityZone__address, domain=None, range=Optional[Union[dict, Address]]) -slots.gaiaXEntity__description = Slot(uri=GX.description, name="gaiaXEntity__description", curie=GX.curie('description'), - model_uri=GX.gaiaXEntity__description, domain=None, range=Optional[str]) +slots.computeFunctionConfiguration__computeFunctionQuotas = Slot(uri=GX.computeFunctionQuotas, name="computeFunctionConfiguration__computeFunctionQuotas", curie=GX.curie('computeFunctionQuotas'), + model_uri=GX.computeFunctionConfiguration__computeFunctionQuotas, domain=None, range=Optional[Union[Union[dict, ComputeFunctionQuotas], List[Union[dict, ComputeFunctionQuotas]]]]) + +slots.computeFunctionConfiguration__computeFunctionLibrary = Slot(uri=GX.computeFunctionLibrary, name="computeFunctionConfiguration__computeFunctionLibrary", curie=GX.curie('computeFunctionLibrary'), + model_uri=GX.computeFunctionConfiguration__computeFunctionLibrary, domain=None, range=Optional[Union[Union[dict, ComputeFunctionTemplate], List[Union[dict, ComputeFunctionTemplate]]]]) + +slots.computeFunctionConfiguration__computeFunctionRuntime = Slot(uri=GX.computeFunctionRuntime, name="computeFunctionConfiguration__computeFunctionRuntime", curie=GX.curie('computeFunctionRuntime'), + model_uri=GX.computeFunctionConfiguration__computeFunctionRuntime, domain=None, range=Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]]) + +slots.computeFunctionConfiguration__computeFunctionSDK = Slot(uri=GX.computeFunctionSDK, name="computeFunctionConfiguration__computeFunctionSDK", curie=GX.curie('computeFunctionSDK'), + model_uri=GX.computeFunctionConfiguration__computeFunctionSDK, domain=None, range=Optional[Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]]]) + +slots.computeFunctionConfiguration__computeFunctionTrigger = Slot(uri=GX.computeFunctionTrigger, name="computeFunctionConfiguration__computeFunctionTrigger", curie=GX.curie('computeFunctionTrigger'), + model_uri=GX.computeFunctionConfiguration__computeFunctionTrigger, domain=None, range=Optional[Union[Union[dict, ComputeFunctionTrigger], List[Union[dict, ComputeFunctionTrigger]]]]) + +slots.computeFunctionConfiguration__computeFunctionDeploymentMethod = Slot(uri=GX.computeFunctionDeploymentMethod, name="computeFunctionConfiguration__computeFunctionDeploymentMethod", curie=GX.curie('computeFunctionDeploymentMethod'), + model_uri=GX.computeFunctionConfiguration__computeFunctionDeploymentMethod, domain=None, range=Optional[Union[Union[str, "ComputeFunctionDeploymentMethod"], List[Union[str, "ComputeFunctionDeploymentMethod"]]]]) + +slots.computeFunctionConfiguration__confidentialComputingTechnology = Slot(uri=GX.confidentialComputingTechnology, name="computeFunctionConfiguration__confidentialComputingTechnology", curie=GX.curie('confidentialComputingTechnology'), + model_uri=GX.computeFunctionConfiguration__confidentialComputingTechnology, domain=None, range=Optional[Union[dict, ConfidentialComputing]]) + +slots.computeFunctionQuotas__functionMaximumNumber = Slot(uri=GX.functionMaximumNumber, name="computeFunctionQuotas__functionMaximumNumber", curie=GX.curie('functionMaximumNumber'), + model_uri=GX.computeFunctionQuotas__functionMaximumNumber, domain=None, range=Optional[int]) + +slots.computeFunctionQuotas__functionStorageLimit = Slot(uri=GX.functionStorageLimit, name="computeFunctionQuotas__functionStorageLimit", curie=GX.curie('functionStorageLimit'), + model_uri=GX.computeFunctionQuotas__functionStorageLimit, domain=None, range=Optional[Union[dict, MemorySize]]) + +slots.computeFunctionQuotas__functionTimeLimit = Slot(uri=GX.functionTimeLimit, name="computeFunctionQuotas__functionTimeLimit", curie=GX.curie('functionTimeLimit'), + model_uri=GX.computeFunctionQuotas__functionTimeLimit, domain=None, range=Optional[Union[dict, Time]]) + +slots.computeFunctionQuotas__functionMemoryLimit = Slot(uri=GX.functionMemoryLimit, name="computeFunctionQuotas__functionMemoryLimit", curie=GX.curie('functionMemoryLimit'), + model_uri=GX.computeFunctionQuotas__functionMemoryLimit, domain=None, range=Optional[Union[dict, MemorySize]]) + +slots.computeFunctionQuotas__functionSizeLimit = Slot(uri=GX.functionSizeLimit, name="computeFunctionQuotas__functionSizeLimit", curie=GX.curie('functionSizeLimit'), + model_uri=GX.computeFunctionQuotas__functionSizeLimit, domain=None, range=Optional[Union[dict, MemorySize]]) + +slots.computeFunctionQuotas__functionConcurrencyLimit = Slot(uri=GX.functionConcurrencyLimit, name="computeFunctionQuotas__functionConcurrencyLimit", curie=GX.curie('functionConcurrencyLimit'), + model_uri=GX.computeFunctionQuotas__functionConcurrencyLimit, domain=None, range=Optional[int]) + +slots.computeFunctionQuotas__functionRequestSizeLimit = Slot(uri=GX.functionRequestSizeLimit, name="computeFunctionQuotas__functionRequestSizeLimit", curie=GX.curie('functionRequestSizeLimit'), + model_uri=GX.computeFunctionQuotas__functionRequestSizeLimit, domain=None, range=Optional[Union[dict, MemorySize]]) + +slots.computeFunctionQuotas__functionResponseSizeLimit = Slot(uri=GX.functionResponseSizeLimit, name="computeFunctionQuotas__functionResponseSizeLimit", curie=GX.curie('functionResponseSizeLimit'), + model_uri=GX.computeFunctionQuotas__functionResponseSizeLimit, domain=None, range=Optional[Union[dict, MemorySize]]) + +slots.computeFunctionRuntime__supportedLanguage = Slot(uri=GX.supportedLanguage, name="computeFunctionRuntime__supportedLanguage", curie=GX.curie('supportedLanguage'), + model_uri=GX.computeFunctionRuntime__supportedLanguage, domain=None, range=Union[str, "ComputeFunctionLanguage"]) + +slots.computeFunctionRuntime__supportedVersion = Slot(uri=GX.supportedVersion, name="computeFunctionRuntime__supportedVersion", curie=GX.curie('supportedVersion'), + model_uri=GX.computeFunctionRuntime__supportedVersion, domain=None, range=Union[str, List[str]]) + +slots.computeFunctionTrigger__triggeringService = Slot(uri=GX.triggeringService, name="computeFunctionTrigger__triggeringService", curie=GX.curie('triggeringService'), + model_uri=GX.computeFunctionTrigger__triggeringService, domain=None, range=Optional[Union[dict, ServiceOffering]]) + +slots.computeFunctionTrigger__triggeringEvent = Slot(uri=GX.triggeringEvent, name="computeFunctionTrigger__triggeringEvent", curie=GX.curie('triggeringEvent'), + model_uri=GX.computeFunctionTrigger__triggeringEvent, domain=None, range=Optional[Union[str, List[str]]]) + +slots.computeFunctionTemplate__computeFunctionName = Slot(uri=GX.computeFunctionName, name="computeFunctionTemplate__computeFunctionName", curie=GX.curie('computeFunctionName'), + model_uri=GX.computeFunctionTemplate__computeFunctionName, domain=None, range=str) + +slots.computeFunctionTemplate__computeFunctionDescription = Slot(uri=GX.computeFunctionDescription, name="computeFunctionTemplate__computeFunctionDescription", curie=GX.curie('computeFunctionDescription'), + model_uri=GX.computeFunctionTemplate__computeFunctionDescription, domain=None, range=str) + +slots.computeFunctionTemplate__computeFunctionTemplateRuntime = Slot(uri=GX.computeFunctionTemplateRuntime, name="computeFunctionTemplate__computeFunctionTemplateRuntime", curie=GX.curie('computeFunctionTemplateRuntime'), + model_uri=GX.computeFunctionTemplate__computeFunctionTemplateRuntime, domain=None, range=Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]]) + +slots.computeFunctionServiceOffering__computeFunctionConfiguration = Slot(uri=GX.computeFunctionConfiguration, name="computeFunctionServiceOffering__computeFunctionConfiguration", curie=GX.curie('computeFunctionConfiguration'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionConfiguration, domain=None, range=Union[dict, ComputeFunctionConfiguration]) + +slots.computeFunctionServiceOffering__computeFunctionDebugTools = Slot(uri=GX.computeFunctionDebugTools, name="computeFunctionServiceOffering__computeFunctionDebugTools", curie=GX.curie('computeFunctionDebugTools'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionDebugTools, domain=None, range=Optional[Union[bool, Bool]]) + +slots.computeFunctionServiceOffering__computeFunctionEditor = Slot(uri=GX.computeFunctionEditor, name="computeFunctionServiceOffering__computeFunctionEditor", curie=GX.curie('computeFunctionEditor'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionEditor, domain=None, range=Optional[Union[bool, Bool]]) + +slots.computeFunctionServiceOffering__computeFunctionAllowQuota = Slot(uri=GX.computeFunctionAllowQuota, name="computeFunctionServiceOffering__computeFunctionAllowQuota", curie=GX.curie('computeFunctionAllowQuota'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowQuota, domain=None, range=Optional[Union[bool, Bool]]) + +slots.computeFunctionServiceOffering__computeFunctionAllowTimeout = Slot(uri=GX.computeFunctionAllowTimeout, name="computeFunctionServiceOffering__computeFunctionAllowTimeout", curie=GX.curie('computeFunctionAllowTimeout'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowTimeout, domain=None, range=Optional[Union[bool, Bool]]) + +slots.computeFunctionServiceOffering__computeFunctionAllowVersioning = Slot(uri=GX.computeFunctionAllowVersioning, name="computeFunctionServiceOffering__computeFunctionAllowVersioning", curie=GX.curie('computeFunctionAllowVersioning'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowVersioning, domain=None, range=Optional[Union[bool, Bool]]) + +slots.computeFunctionServiceOffering__computeFunctionAllowAutoScaling = Slot(uri=GX.computeFunctionAllowAutoScaling, name="computeFunctionServiceOffering__computeFunctionAllowAutoScaling", curie=GX.curie('computeFunctionAllowAutoScaling'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowAutoScaling, domain=None, range=Optional[Union[bool, Bool]]) + +slots.computeFunctionServiceOffering__computeFunctionAllowFSMount = Slot(uri=GX.computeFunctionAllowFSMount, name="computeFunctionServiceOffering__computeFunctionAllowFSMount", curie=GX.curie('computeFunctionAllowFSMount'), + model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowFSMount, domain=None, range=Optional[Union[bool, Bool]]) + +slots.connectivityConfiguration__sourceIdentifierA = Slot(uri=GX.sourceIdentifierA, name="connectivityConfiguration__sourceIdentifierA", curie=GX.curie('sourceIdentifierA'), + model_uri=GX.connectivityConfiguration__sourceIdentifierA, domain=None, range=Optional[str]) + +slots.connectivityConfiguration__destinationIdentifierZ = Slot(uri=GX.destinationIdentifierZ, name="connectivityConfiguration__destinationIdentifierZ", curie=GX.curie('destinationIdentifierZ'), + model_uri=GX.connectivityConfiguration__destinationIdentifierZ, domain=None, range=Optional[str]) + +slots.interconnectionPointIdentifier__ipiType = Slot(uri=GX.ipiType, name="interconnectionPointIdentifier__ipiType", curie=GX.curie('ipiType'), + model_uri=GX.interconnectionPointIdentifier__ipiType, domain=None, range=Optional[Union[str, "IPIType"]]) + +slots.interconnectionPointIdentifier__ipiProvider = Slot(uri=GX.ipiProvider, name="interconnectionPointIdentifier__ipiProvider", curie=GX.curie('ipiProvider'), + model_uri=GX.interconnectionPointIdentifier__ipiProvider, domain=None, range=Optional[str]) + +slots.interconnectionPointIdentifier__specificParameters = Slot(uri=GX.specificParameters, name="interconnectionPointIdentifier__specificParameters", curie=GX.curie('specificParameters'), + model_uri=GX.interconnectionPointIdentifier__specificParameters, domain=None, range=Optional[str]) + +slots.interconnectionPointIdentifier__completeIPI = Slot(uri=GX.completeIPI, name="interconnectionPointIdentifier__completeIPI", curie=GX.curie('completeIPI'), + model_uri=GX.interconnectionPointIdentifier__completeIPI, domain=None, range=URIRef) + +slots.interconnectionPointIdentifier__datacenterAllocation = Slot(uri=GX.datacenterAllocation, name="interconnectionPointIdentifier__datacenterAllocation", curie=GX.curie('datacenterAllocation'), + model_uri=GX.interconnectionPointIdentifier__datacenterAllocation, domain=None, range=Optional[Union[dict, DatacenterAllocation]]) + +slots.interconnectionPointIdentifier__macAddress = Slot(uri=GX.macAddress, name="interconnectionPointIdentifier__macAddress", curie=GX.curie('macAddress'), + model_uri=GX.interconnectionPointIdentifier__macAddress, domain=None, range=Optional[str], + pattern=re.compile(r'(?:[0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}')) + +slots.interconnectionPointIdentifier__ipAddress = Slot(uri=GX.ipAddress, name="interconnectionPointIdentifier__ipAddress", curie=GX.curie('ipAddress'), + model_uri=GX.interconnectionPointIdentifier__ipAddress, domain=None, range=Optional[str], + pattern=re.compile(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')) + +slots.datacenterAllocation__refersTo = Slot(uri=GX.refersTo, name="datacenterAllocation__refersTo", curie=GX.curie('refersTo'), + model_uri=GX.datacenterAllocation__refersTo, domain=None, range=Union[dict, Datacenter]) + +slots.datacenterAllocation__floor = Slot(uri=GX.floor, name="datacenterAllocation__floor", curie=GX.curie('floor'), + model_uri=GX.datacenterAllocation__floor, domain=None, range=Optional[str]) + +slots.datacenterAllocation__rackNumber = Slot(uri=GX.rackNumber, name="datacenterAllocation__rackNumber", curie=GX.curie('rackNumber'), + model_uri=GX.datacenterAllocation__rackNumber, domain=None, range=Optional[str]) + +slots.datacenterAllocation__patchPanel = Slot(uri=GX.patchPanel, name="datacenterAllocation__patchPanel", curie=GX.curie('patchPanel'), + model_uri=GX.datacenterAllocation__patchPanel, domain=None, range=Optional[str]) + +slots.datacenterAllocation__portNumber = Slot(uri=GX.portNumber, name="datacenterAllocation__portNumber", curie=GX.curie('portNumber'), + model_uri=GX.datacenterAllocation__portNumber, domain=None, range=Optional[int]) + +slots.vLANConfiguration__vlanType = Slot(uri=GX.vlanType, name="vLANConfiguration__vlanType", curie=GX.curie('vlanType'), + model_uri=GX.vLANConfiguration__vlanType, domain=None, range=Optional[Union[str, "VlanType"]]) + +slots.vLANConfiguration__vlanTag = Slot(uri=GX.vlanTag, name="vLANConfiguration__vlanTag", curie=GX.curie('vlanTag'), + model_uri=GX.vLANConfiguration__vlanTag, domain=None, range=Optional[int]) + +slots.vLANConfiguration__vlanEtherType = Slot(uri=GX.vlanEtherType, name="vLANConfiguration__vlanEtherType", curie=GX.curie('vlanEtherType'), + model_uri=GX.vLANConfiguration__vlanEtherType, domain=None, range=Optional[str]) + +slots.connectivityServiceOffering__connectivityConfiguration = Slot(uri=GX.connectivityConfiguration, name="connectivityServiceOffering__connectivityConfiguration", curie=GX.curie('connectivityConfiguration'), + model_uri=GX.connectivityServiceOffering__connectivityConfiguration, domain=None, range=Union[Union[dict, ConnectivityConfiguration], List[Union[dict, ConnectivityConfiguration]]]) + +slots.connectivityServiceOffering__connectivityQoS = Slot(uri=GX.connectivityQoS, name="connectivityServiceOffering__connectivityQoS", curie=GX.curie('connectivityQoS'), + model_uri=GX.connectivityServiceOffering__connectivityQoS, domain=None, range=Optional[Union[dict, QoS]]) + +slots.contactInformation__postalAddress = Slot(uri=GX.postalAddress, name="contactInformation__postalAddress", curie=GX.curie('postalAddress'), + model_uri=GX.contactInformation__postalAddress, domain=None, range=Optional[Union[dict, Address]]) + +slots.contactInformation__email = Slot(uri=GX.email, name="contactInformation__email", curie=GX.curie('email'), + model_uri=GX.contactInformation__email, domain=None, range=Optional[str]) + +slots.contactInformation__phoneNumber = Slot(uri=GX.phoneNumber, name="contactInformation__phoneNumber", curie=GX.curie('phoneNumber'), + model_uri=GX.contactInformation__phoneNumber, domain=None, range=Optional[str]) + +slots.contactInformation__uri = Slot(uri=GX.uri, name="contactInformation__uri", curie=GX.curie('uri'), + model_uri=GX.contactInformation__uri, domain=None, range=Optional[Union[str, URI]]) + +slots.containerImage__baseContainerImage = Slot(uri=GX.baseContainerImage, name="containerImage__baseContainerImage", curie=GX.curie('baseContainerImage'), + model_uri=GX.containerImage__baseContainerImage, domain=None, range=Union[dict, BaseContainerImage]) + +slots.containerImage__containerFormat = Slot(uri=GX.containerFormat, name="containerImage__containerFormat", curie=GX.curie('containerFormat'), + model_uri=GX.containerImage__containerFormat, domain=None, range=Union[str, "ContainerFormat"]) + +slots.baseContainerImage__containerImageTag = Slot(uri=GX.containerImageTag, name="baseContainerImage__containerImageTag", curie=GX.curie('containerImageTag'), + model_uri=GX.baseContainerImage__containerImageTag, domain=None, range=Optional[Union[str, List[str]]]) + +slots.baseContainerImage__containerImageLink = Slot(uri=GX.containerImageLink, name="baseContainerImage__containerImageLink", curie=GX.curie('containerImageLink'), + model_uri=GX.baseContainerImage__containerImageLink, domain=None, range=Union[str, URI]) + +slots.containerResourceLimits__cpuRequirements = Slot(uri=GX.cpuRequirements, name="containerResourceLimits__cpuRequirements", curie=GX.curie('cpuRequirements'), + model_uri=GX.containerResourceLimits__cpuRequirements, domain=None, range=Optional[Union[dict, CPU]]) + +slots.containerResourceLimits__numberOfCoresLimit = Slot(uri=GX.numberOfCoresLimit, name="containerResourceLimits__numberOfCoresLimit", curie=GX.curie('numberOfCoresLimit'), + model_uri=GX.containerResourceLimits__numberOfCoresLimit, domain=None, range=Optional[int]) + +slots.containerResourceLimits__memoryRequirements = Slot(uri=GX.memoryRequirements, name="containerResourceLimits__memoryRequirements", curie=GX.curie('memoryRequirements'), + model_uri=GX.containerResourceLimits__memoryRequirements, domain=None, range=Optional[Union[dict, Memory]]) + +slots.containerResourceLimits__memoryLimit = Slot(uri=GX.memoryLimit, name="containerResourceLimits__memoryLimit", curie=GX.curie('memoryLimit'), + model_uri=GX.containerResourceLimits__memoryLimit, domain=None, range=Optional[Union[dict, MemorySize]]) + +slots.containerResourceLimits__gpuRequirements = Slot(uri=GX.gpuRequirements, name="containerResourceLimits__gpuRequirements", curie=GX.curie('gpuRequirements'), + model_uri=GX.containerResourceLimits__gpuRequirements, domain=None, range=Optional[Union[dict, GPU]]) + +slots.containerResourceLimits__gpuLimit = Slot(uri=GX.gpuLimit, name="containerResourceLimits__gpuLimit", curie=GX.curie('gpuLimit'), + model_uri=GX.containerResourceLimits__gpuLimit, domain=None, range=Optional[int]) + +slots.containerResourceLimits__confidential = Slot(uri=GX.confidential, name="containerResourceLimits__confidential", curie=GX.curie('confidential'), + model_uri=GX.containerResourceLimits__confidential, domain=None, range=Union[bool, Bool]) + +slots.containerResourceLimits__confidentialComputingTechnology = Slot(uri=GX.confidentialComputingTechnology, name="containerResourceLimits__confidentialComputingTechnology", curie=GX.curie('confidentialComputingTechnology'), + model_uri=GX.containerResourceLimits__confidentialComputingTechnology, domain=None, range=Optional[Union[dict, ConfidentialComputing]]) slots.cPU__cpuArchitecture = Slot(uri=GX.cpuArchitecture, name="cPU__cpuArchitecture", curie=GX.curie('cpuArchitecture'), model_uri=GX.cPU__cpuArchitecture, domain=None, range=Optional[Union[str, "Architectures"]]) @@ -12300,6 +36654,78 @@ class slots: slots.signature__signatureAlgorithm = Slot(uri=GX.signatureAlgorithm, name="signature__signatureAlgorithm", curie=GX.curie('signatureAlgorithm'), model_uri=GX.signature__signatureAlgorithm, domain=None, range=Union[str, "SignatureAlgorithm"]) +slots.customerInstructions__terms = Slot(uri=GX.terms, name="customerInstructions__terms", curie=GX.curie('terms'), + model_uri=GX.customerInstructions__terms, domain=None, range=Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]) + +slots.customerInstructions__means = Slot(uri=GX.means, name="customerInstructions__means", curie=GX.curie('means'), + model_uri=GX.customerInstructions__means, domain=None, range=Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]) + +slots.dataPortability__resource = Slot(uri=GX.resource, name="dataPortability__resource", curie=GX.curie('resource'), + model_uri=GX.dataPortability__resource, domain=None, range=str) + +slots.dataPortability__contactInformation = Slot(uri=GX.contactInformation, name="dataPortability__contactInformation", curie=GX.curie('contactInformation'), + model_uri=GX.dataPortability__contactInformation, domain=None, range=Optional[Union[dict, ContactInformation]]) + +slots.dataPortability__means = Slot(uri=GX.means, name="dataPortability__means", curie=GX.curie('means'), + model_uri=GX.dataPortability__means, domain=None, range=Union[str, List[str]]) + +slots.dataPortability__documentations = Slot(uri=GX.documentations, name="dataPortability__documentations", curie=GX.curie('documentations'), + model_uri=GX.dataPortability__documentations, domain=None, range=Union[Union[str, URI], List[Union[str, URI]]]) + +slots.dataPortability__legalDocument = Slot(uri=GX.legalDocument, name="dataPortability__legalDocument", curie=GX.curie('legalDocument'), + model_uri=GX.dataPortability__legalDocument, domain=None, range=Union[dict, LegalDocument]) + +slots.dataPortability__deletionMethods = Slot(uri=GX.deletionMethods, name="dataPortability__deletionMethods", curie=GX.curie('deletionMethods'), + model_uri=GX.dataPortability__deletionMethods, domain=None, range=Union[str, List[str]]) + +slots.dataPortability__deletionTimeframe = Slot(uri=GX.deletionTimeframe, name="dataPortability__deletionTimeframe", curie=GX.curie('deletionTimeframe'), + model_uri=GX.dataPortability__deletionTimeframe, domain=None, range=str) + +slots.dataPortability__formats = Slot(uri=GX.formats, name="dataPortability__formats", curie=GX.curie('formats'), + model_uri=GX.dataPortability__formats, domain=None, range=Union[str, List[str]]) + +slots.dataPortability__pricing = Slot(uri=GX.pricing, name="dataPortability__pricing", curie=GX.curie('pricing'), + model_uri=GX.dataPortability__pricing, domain=None, range=Union[str, URI]) + +slots.dataResource__producedBy = Slot(uri=GX.producedBy, name="dataResource__producedBy", curie=GX.curie('producedBy'), + model_uri=GX.dataResource__producedBy, domain=None, range=Union[str, LegalPersonRegistrationNumber]) + +slots.dataResource__exposedThrough = Slot(uri=GX.exposedThrough, name="dataResource__exposedThrough", curie=GX.curie('exposedThrough'), + model_uri=GX.dataResource__exposedThrough, domain=None, range=Union[Union[dict, DataExchangeComponent], List[Union[dict, DataExchangeComponent]]]) + +slots.dataResource__obsoleteDateTime = Slot(uri=GX.obsoleteDateTime, name="dataResource__obsoleteDateTime", curie=GX.curie('obsoleteDateTime'), + model_uri=GX.dataResource__obsoleteDateTime, domain=None, range=Optional[Union[str, XSDDateTime]]) + +slots.dataResource__expirationDateTime = Slot(uri=GX.expirationDateTime, name="dataResource__expirationDateTime", curie=GX.curie('expirationDateTime'), + model_uri=GX.dataResource__expirationDateTime, domain=None, range=Optional[Union[str, XSDDateTime]]) + +slots.dataResource__containsPII = Slot(uri=GX.containsPII, name="dataResource__containsPII", curie=GX.curie('containsPII'), + model_uri=GX.dataResource__containsPII, domain=None, range=Union[bool, Bool]) + +slots.dataResource__dataController = Slot(uri=GX.dataController, name="dataResource__dataController", curie=GX.curie('dataController'), + model_uri=GX.dataResource__dataController, domain=None, range=Optional[Union[Union[dict, Participant], List[Union[dict, Participant]]]]) + +slots.dataResource__consent = Slot(uri=GX.consent, name="dataResource__consent", curie=GX.curie('consent'), + model_uri=GX.dataResource__consent, domain=None, range=Optional[Union[Union[dict, Consent], List[Union[dict, Consent]]]]) + +slots.consent__legalBasis = Slot(uri=GX.legalBasis, name="consent__legalBasis", curie=GX.curie('legalBasis'), + model_uri=GX.consent__legalBasis, domain=None, range=str) + +slots.consent__dataProtectionContactPoint = Slot(uri=GX.dataProtectionContactPoint, name="consent__dataProtectionContactPoint", curie=GX.curie('dataProtectionContactPoint'), + model_uri=GX.consent__dataProtectionContactPoint, domain=None, range=Optional[Union[str, List[str]]]) + +slots.consent__purpose = Slot(uri=GX.purpose, name="consent__purpose", curie=GX.curie('purpose'), + model_uri=GX.consent__purpose, domain=None, range=Optional[Union[str, List[str]]]) + +slots.consent__consentWithdrawalContactPoint = Slot(uri=GX.consentWithdrawalContactPoint, name="consent__consentWithdrawalContactPoint", curie=GX.curie('consentWithdrawalContactPoint'), + model_uri=GX.consent__consentWithdrawalContactPoint, domain=None, range=Optional[Union[str, List[str]]]) + +slots.dataTransfer__reason = Slot(uri=GX.reason, name="dataTransfer__reason", curie=GX.curie('reason'), + model_uri=GX.dataTransfer__reason, domain=None, range=str) + +slots.dataTransfer__scope = Slot(uri=GX.scope, name="dataTransfer__scope", curie=GX.curie('scope'), + model_uri=GX.dataTransfer__scope, domain=None, range=str) + slots.device__vendor = Slot(uri=GX.vendor, name="device__vendor", curie=GX.curie('vendor'), model_uri=GX.device__vendor, domain=None, range=Optional[str]) @@ -12330,6 +36756,27 @@ class slots: slots.endpoint__formalDescription = Slot(uri=GX.formalDescription, name="endpoint__formalDescription", curie=GX.curie('formalDescription'), model_uri=GX.endpoint__formalDescription, domain=None, range=Optional[str]) +slots.energyMix__date = Slot(uri=GX.date, name="energyMix__date", curie=GX.curie('date'), + model_uri=GX.energyMix__date, domain=None, range=Union[str, XSDDate]) + +slots.energyMix__renewableEnergy = Slot(uri=GX.renewableEnergy, name="energyMix__renewableEnergy", curie=GX.curie('renewableEnergy'), + model_uri=GX.energyMix__renewableEnergy, domain=None, range=float) + +slots.energyMix__hourlyCarbonFreeEnergy = Slot(uri=GX.hourlyCarbonFreeEnergy, name="energyMix__hourlyCarbonFreeEnergy", curie=GX.curie('hourlyCarbonFreeEnergy'), + model_uri=GX.energyMix__hourlyCarbonFreeEnergy, domain=None, range=float) + +slots.energyUsageEfficiency__certifications = Slot(uri=GX.certifications, name="energyUsageEfficiency__certifications", curie=GX.curie('certifications'), + model_uri=GX.energyUsageEfficiency__certifications, domain=None, range=Optional[Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]]) + +slots.energyUsageEfficiency__powerUsageEffectiveness = Slot(uri=GX.powerUsageEffectiveness, name="energyUsageEfficiency__powerUsageEffectiveness", curie=GX.curie('powerUsageEffectiveness'), + model_uri=GX.energyUsageEfficiency__powerUsageEffectiveness, domain=None, range=float) + +slots.gaiaXEntity__name = Slot(uri=HTTPS_SCHEMA.name, name="gaiaXEntity__name", curie=HTTPS_SCHEMA.curie('name'), + model_uri=GX.gaiaXEntity__name, domain=None, range=Optional[str]) + +slots.gaiaXEntity__description = Slot(uri=HTTPS_SCHEMA.description, name="gaiaXEntity__description", curie=HTTPS_SCHEMA.curie('description'), + model_uri=GX.gaiaXEntity__description, domain=None, range=Optional[str]) + slots.gPU__gpuMemory = Slot(uri=GX.gpuMemory, name="gPU__gpuMemory", curie=GX.curie('gpuMemory'), model_uri=GX.gPU__gpuMemory, domain=None, range=Optional[Union[dict, MemorySize]]) @@ -12366,9 +36813,6 @@ class slots: slots.image__encryption = Slot(uri=GX.encryption, name="image__encryption", curie=GX.curie('encryption'), model_uri=GX.image__encryption, domain=None, range=Optional[Union[dict, Encryption]]) -slots.image__checkSum = Slot(uri=GX.checkSum, name="image__checkSum", curie=GX.curie('checkSum'), - model_uri=GX.image__checkSum, domain=None, range=Optional[Union[dict, CheckSum]]) - slots.image__secureBoot = Slot(uri=GX.secureBoot, name="image__secureBoot", curie=GX.curie('secureBoot'), model_uri=GX.image__secureBoot, domain=None, range=Optional[Union[bool, Bool]]) @@ -12411,9 +36855,42 @@ class slots: slots.latestN__value = Slot(uri=GX.value, name="latestN__value", curie=GX.curie('value'), model_uri=GX.latestN__value, domain=None, range=Optional[int]) +slots.interconnectionServiceOffering__connectedNetworkA = Slot(uri=GX.connectedNetworkA, name="interconnectionServiceOffering__connectedNetworkA", curie=GX.curie('connectedNetworkA'), + model_uri=GX.interconnectionServiceOffering__connectedNetworkA, domain=None, range=Optional[Union[int, List[int]]]) + +slots.interconnectionServiceOffering__connectedNetworkZ = Slot(uri=GX.connectedNetworkZ, name="interconnectionServiceOffering__connectedNetworkZ", curie=GX.curie('connectedNetworkZ'), + model_uri=GX.interconnectionServiceOffering__connectedNetworkZ, domain=None, range=Optional[Union[int, List[int]]]) + +slots.interconnectionServiceOffering__prefixSetA = Slot(uri=GX.prefixSetA, name="interconnectionServiceOffering__prefixSetA", curie=GX.curie('prefixSetA'), + model_uri=GX.interconnectionServiceOffering__prefixSetA, domain=None, range=Optional[Union[str, List[str]]]) + +slots.interconnectionServiceOffering__prefixSetZ = Slot(uri=GX.prefixSetZ, name="interconnectionServiceOffering__prefixSetZ", curie=GX.curie('prefixSetZ'), + model_uri=GX.interconnectionServiceOffering__prefixSetZ, domain=None, range=Optional[Union[str, List[str]]]) + +slots.interconnectionServiceOffering__vlanConfiguration = Slot(uri=GX.vlanConfiguration, name="interconnectionServiceOffering__vlanConfiguration", curie=GX.curie('vlanConfiguration'), + model_uri=GX.interconnectionServiceOffering__vlanConfiguration, domain=None, range=Optional[Union[dict, VLANConfiguration]]) + +slots.interconnectionServiceOffering__connectionType = Slot(uri=GX.connectionType, name="interconnectionServiceOffering__connectionType", curie=GX.curie('connectionType'), + model_uri=GX.interconnectionServiceOffering__connectionType, domain=None, range=Optional[Union[str, List[str]]]) + +slots.interconnectionServiceOffering__interfaceType = Slot(uri=GX.interfaceType, name="interconnectionServiceOffering__interfaceType", curie=GX.curie('interfaceType'), + model_uri=GX.interconnectionServiceOffering__interfaceType, domain=None, range=Optional[Union[str, List[str]]]) + slots.issuer__gaiaxTermsAndConditions = Slot(uri=GX.gaiaxTermsAndConditions, name="issuer__gaiaxTermsAndConditions", curie=GX.curie('gaiaxTermsAndConditions'), model_uri=GX.issuer__gaiaxTermsAndConditions, domain=None, range=Union[str, "GaiaXTermsAndConditions"]) +slots.legalDocument__url = Slot(uri=GX.url, name="legalDocument__url", curie=GX.curie('url'), + model_uri=GX.legalDocument__url, domain=None, range=Union[str, URI]) + +slots.legalDocument__mimeTypes = Slot(uri=GX.mimeTypes, name="legalDocument__mimeTypes", curie=GX.curie('mimeTypes'), + model_uri=GX.legalDocument__mimeTypes, domain=None, range=Optional[Union[Union[str, "MIMETypes"], List[Union[str, "MIMETypes"]]]]) + +slots.legalDocument__governingLawCountries = Slot(uri=GX.governingLawCountries, name="legalDocument__governingLawCountries", curie=GX.curie('governingLawCountries'), + model_uri=GX.legalDocument__governingLawCountries, domain=None, range=Optional[Union[Union[str, "CountryNameAlpha2"], List[Union[str, "CountryNameAlpha2"]]]]) + +slots.legalDocument__involvedParties = Slot(uri=GX.involvedParties, name="legalDocument__involvedParties", curie=GX.curie('involvedParties'), + model_uri=GX.legalDocument__involvedParties, domain=None, range=Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]]) + slots.legalPerson__registrationNumber = Slot(uri=GX.registrationNumber, name="legalPerson__registrationNumber", curie=GX.curie('registrationNumber'), model_uri=GX.legalPerson__registrationNumber, domain=None, range=URIRef) @@ -12435,15 +36912,48 @@ class slots: slots.vatID__vatID = Slot(uri=GX.vatID, name="vatID__vatID", curie=GX.curie('vatID'), model_uri=GX.vatID__vatID, domain=None, range=URIRef) -slots.leiCode__leiCode = Slot(uri=SCHEMA.leiCode, name="leiCode__leiCode", curie=SCHEMA.curie('leiCode'), +slots.vatID__countryCode = Slot(uri=GX.countryCode, name="vatID__countryCode", curie=GX.curie('countryCode'), + model_uri=GX.vatID__countryCode, domain=None, range=Optional[Union[str, "CountryNameAlpha2"]]) + +slots.leiCode__leiCode = Slot(uri=HTTPS_SCHEMA.leiCode, name="leiCode__leiCode", curie=HTTPS_SCHEMA.curie('leiCode'), model_uri=GX.leiCode__leiCode, domain=None, range=URIRef) +slots.leiCode__countryCode = Slot(uri=GX.countryCode, name="leiCode__countryCode", curie=GX.curie('countryCode'), + model_uri=GX.leiCode__countryCode, domain=None, range=Optional[Union[str, "CountryNameAlpha2"]]) + +slots.leiCode__subdivisionCountryCode = Slot(uri=GX.subdivisionCountryCode, name="leiCode__subdivisionCountryCode", curie=GX.curie('subdivisionCountryCode'), + model_uri=GX.leiCode__subdivisionCountryCode, domain=None, range=Optional[Union[str, "RegionCode"]]) + slots.eORI__eori = Slot(uri=GX.eori, name="eORI__eori", curie=GX.curie('eori'), model_uri=GX.eORI__eori, domain=None, range=URIRef) +slots.eORI__country = Slot(uri=GX.country, name="eORI__country", curie=GX.curie('country'), + model_uri=GX.eORI__country, domain=None, range=Optional[str]) + slots.eUID__euid = Slot(uri=GX.euid, name="eUID__euid", curie=GX.curie('euid'), model_uri=GX.eUID__euid, domain=None, range=URIRef) +slots.taxID__taxId = Slot(uri=HTTPS_SCHEMA.taxID, name="taxID__taxId", curie=HTTPS_SCHEMA.curie('taxID'), + model_uri=GX.taxID__taxId, domain=None, range=URIRef) + +slots.legitimateInterest__legalBasis = Slot(uri=GX.legalBasis, name="legitimateInterest__legalBasis", curie=GX.curie('legalBasis'), + model_uri=GX.legitimateInterest__legalBasis, domain=None, range=str) + +slots.legitimateInterest__dataProtectionContact = Slot(uri=GX.dataProtectionContact, name="legitimateInterest__dataProtectionContact", curie=GX.curie('dataProtectionContact'), + model_uri=GX.legitimateInterest__dataProtectionContact, domain=None, range=str) + +slots.linkConnectivityServiceOffering__protocolType = Slot(uri=GX.protocolType, name="linkConnectivityServiceOffering__protocolType", curie=GX.curie('protocolType'), + model_uri=GX.linkConnectivityServiceOffering__protocolType, domain=None, range=Union[str, "ProtocolType"]) + +slots.linkConnectivityServiceOffering__vlanConfiguration = Slot(uri=GX.vlanConfiguration, name="linkConnectivityServiceOffering__vlanConfiguration", curie=GX.curie('vlanConfiguration'), + model_uri=GX.linkConnectivityServiceOffering__vlanConfiguration, domain=None, range=Optional[Union[dict, VLANConfiguration]]) + +slots.measure__description = Slot(uri=HTTPS_SCHEMA.description, name="measure__description", curie=HTTPS_SCHEMA.curie('description'), + model_uri=GX.measure__description, domain=None, range=str) + +slots.measure__legalDocuments = Slot(uri=GX.legalDocuments, name="measure__legalDocuments", curie=GX.curie('legalDocuments'), + model_uri=GX.measure__legalDocuments, domain=None, range=Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]) + slots.memory__memorySize = Slot(uri=GX.memorySize, name="memory__memorySize", curie=GX.curie('memorySize'), model_uri=GX.memory__memorySize, domain=None, range=Union[dict, MemorySize]) @@ -12459,14 +36969,125 @@ class slots: slots.memory__hardwareEncryption = Slot(uri=GX.hardwareEncryption, name="memory__hardwareEncryption", curie=GX.curie('hardwareEncryption'), model_uri=GX.memory__hardwareEncryption, domain=None, range=Optional[Union[bool, Bool]]) -slots.floatPercentage__value = Slot(uri=GX.value, name="floatPercentage__value", curie=GX.curie('value'), - model_uri=GX.floatPercentage__value, domain=None, range=Optional[float]) +slots.networkConnectivityServiceOffering__serviceType = Slot(uri=GX.serviceType, name="networkConnectivityServiceOffering__serviceType", curie=GX.curie('serviceType'), + model_uri=GX.networkConnectivityServiceOffering__serviceType, domain=None, range=Optional[str]) + +slots.networkConnectivityServiceOffering__publicIpAddressProvisioning = Slot(uri=GX.publicIpAddressProvisioning, name="networkConnectivityServiceOffering__publicIpAddressProvisioning", curie=GX.curie('publicIpAddressProvisioning'), + model_uri=GX.networkConnectivityServiceOffering__publicIpAddressProvisioning, domain=None, range=Optional[Union[str, "PublicIpAddressProvisioningTypes"]]) + +slots.networkConnectivityServiceOffering__ipVersion = Slot(uri=GX.ipVersion, name="networkConnectivityServiceOffering__ipVersion", curie=GX.curie('ipVersion'), + model_uri=GX.networkConnectivityServiceOffering__ipVersion, domain=None, range=Optional[Union[str, "IpVersionTypes"]]) + +slots.networkConnectivityServiceOffering__tenantSeparation = Slot(uri=GX.tenantSeparation, name="networkConnectivityServiceOffering__tenantSeparation", curie=GX.curie('tenantSeparation'), + model_uri=GX.networkConnectivityServiceOffering__tenantSeparation, domain=None, range=Optional[Union[str, "TenantSeparation"]]) + +slots.policy__uid = Slot(uri=ODRL.uid, name="policy__uid", curie=ODRL.curie('uid'), + model_uri=GX.policy__uid, domain=None, range=str) + +slots.policy__profile = Slot(uri=ODRL.profile, name="policy__profile", curie=ODRL.curie('profile'), + model_uri=GX.policy__profile, domain=None, range=Optional[str]) + +slots.policy__permission = Slot(uri=ODRL.permission, name="policy__permission", curie=ODRL.curie('permission'), + model_uri=GX.policy__permission, domain=None, range=Optional[Union[Union[dict, Permission], List[Union[dict, Permission]]]]) + +slots.policy__prohibition = Slot(uri=ODRL.prohibition, name="policy__prohibition", curie=ODRL.curie('prohibition'), + model_uri=GX.policy__prohibition, domain=None, range=Optional[Union[Union[dict, Prohibition], List[Union[dict, Prohibition]]]]) + +slots.policy__obligation = Slot(uri=ODRL.obligation, name="policy__obligation", curie=ODRL.curie('obligation'), + model_uri=GX.policy__obligation, domain=None, range=Optional[Union[Union[dict, Duty], List[Union[dict, Duty]]]]) + +slots.agreement__assignee = Slot(uri=ODRL.assignee, name="agreement__assignee", curie=ODRL.curie('assignee'), + model_uri=GX.agreement__assignee, domain=None, range=Union[dict, Party]) + +slots.agreement__assigner = Slot(uri=ODRL.assigner, name="agreement__assigner", curie=ODRL.curie('assigner'), + model_uri=GX.agreement__assigner, domain=None, range=Union[dict, Party]) + +slots.offer__assigner = Slot(uri=ODRL.assigner, name="offer__assigner", curie=ODRL.curie('assigner'), + model_uri=GX.offer__assigner, domain=None, range=Union[dict, Party]) + +slots.rule__action = Slot(uri=ODRL.action, name="rule__action", curie=ODRL.curie('action'), + model_uri=GX.rule__action, domain=None, range=str) + +slots.rule__assignee = Slot(uri=ODRL.assignee, name="rule__assignee", curie=ODRL.curie('assignee'), + model_uri=GX.rule__assignee, domain=None, range=Optional[Union[dict, Party]]) + +slots.rule__assigner = Slot(uri=ODRL.assigner, name="rule__assigner", curie=ODRL.curie('assigner'), + model_uri=GX.rule__assigner, domain=None, range=Optional[Union[dict, Party]]) + +slots.rule__constraint = Slot(uri=ODRL.constraint, name="rule__constraint", curie=ODRL.curie('constraint'), + model_uri=GX.rule__constraint, domain=None, range=Optional[Union[Union[dict, Constraint], List[Union[dict, Constraint]]]]) + +slots.rule__logicalConstraint = Slot(uri=ODRL.logicalConstraint, name="rule__logicalConstraint", curie=ODRL.curie('logicalConstraint'), + model_uri=GX.rule__logicalConstraint, domain=None, range=Optional[Union[Union[dict, LogicalConstraint], List[Union[dict, LogicalConstraint]]]]) + +slots.rule__duty = Slot(uri=ODRL.duty, name="rule__duty", curie=ODRL.curie('duty'), + model_uri=GX.rule__duty, domain=None, range=Optional[Union[Union[dict, Duty], List[Union[dict, Duty]]]]) + +slots.asset__uid = Slot(uri=ODRL.uid, name="asset__uid", curie=ODRL.curie('uid'), + model_uri=GX.asset__uid, domain=None, range=str) + +slots.party__uid = Slot(uri=ODRL.uid, name="party__uid", curie=ODRL.curie('uid'), + model_uri=GX.party__uid, domain=None, range=str) + +slots.permission__target = Slot(uri=ODRL.target, name="permission__target", curie=ODRL.curie('target'), + model_uri=GX.permission__target, domain=None, range=Union[str, List[str]]) + +slots.prohibition__target = Slot(uri=ODRL.target, name="prohibition__target", curie=ODRL.curie('target'), + model_uri=GX.prohibition__target, domain=None, range=Union[str, List[str]]) + +slots.duty__target = Slot(uri=ODRL.target, name="duty__target", curie=ODRL.curie('target'), + model_uri=GX.duty__target, domain=None, range=Optional[Union[str, List[str]]]) + +slots.constraint__leftOperand = Slot(uri=ODRL.leftOperand, name="constraint__leftOperand", curie=ODRL.curie('leftOperand'), + model_uri=GX.constraint__leftOperand, domain=None, range=str) + +slots.constraint__operator = Slot(uri=ODRL.operator, name="constraint__operator", curie=ODRL.curie('operator'), + model_uri=GX.constraint__operator, domain=None, range=str) + +slots.physicalConnectivityServiceOffering__circuitType = Slot(uri=GX.circuitType, name="physicalConnectivityServiceOffering__circuitType", curie=GX.curie('circuitType'), + model_uri=GX.physicalConnectivityServiceOffering__circuitType, domain=None, range=str) + +slots.physicalConnectivityServiceOffering__interfaceType = Slot(uri=GX.interfaceType, name="physicalConnectivityServiceOffering__interfaceType", curie=GX.curie('interfaceType'), + model_uri=GX.physicalConnectivityServiceOffering__interfaceType, domain=None, range=str) slots.pXEImage__pxeImageDiskFormat = Slot(uri=GX.pxeImageDiskFormat, name="pXEImage__pxeImageDiskFormat", curie=GX.curie('pxeImageDiskFormat'), model_uri=GX.pXEImage__pxeImageDiskFormat, domain=None, range=Optional[Union[str, "PXEDiskType"]]) -slots.resource__aggregationOfResources = Slot(uri=GX.aggregationOfResources, name="resource__aggregationOfResources", curie=GX.curie('aggregationOfResources'), - model_uri=GX.resource__aggregationOfResources, domain=None, range=Optional[Union[str, List[str]]]) +slots.qoSMetric__guaranteed = Slot(uri=GX.guaranteed, name="qoSMetric__guaranteed", curie=GX.curie('guaranteed'), + model_uri=GX.qoSMetric__guaranteed, domain=None, range=Optional[Union[dict, FloatPercentage]]) + +slots.qoS__throughput = Slot(uri=GX.throughput, name="qoS__throughput", curie=GX.curie('throughput'), + model_uri=GX.qoS__throughput, domain=None, range=Optional[Union[dict, Throughput]]) + +slots.qoS__iops = Slot(uri=GX.iops, name="qoS__iops", curie=GX.curie('iops'), + model_uri=GX.qoS__iops, domain=None, range=Optional[Union[dict, IOPS]]) + +slots.qoS__bandWidth = Slot(uri=GX.bandWidth, name="qoS__bandWidth", curie=GX.curie('bandWidth'), + model_uri=GX.qoS__bandWidth, domain=None, range=Optional[Union[dict, BandWidth]]) + +slots.qoS__roundTripTime = Slot(uri=GX.roundTripTime, name="qoS__roundTripTime", curie=GX.curie('roundTripTime'), + model_uri=GX.qoS__roundTripTime, domain=None, range=Optional[Union[dict, RoundTripTime]]) + +slots.qoS__availability = Slot(uri=GX.availability, name="qoS__availability", curie=GX.curie('availability'), + model_uri=GX.qoS__availability, domain=None, range=Optional[Union[dict, Availability]]) + +slots.qoS__packetLoss = Slot(uri=GX.packetLoss, name="qoS__packetLoss", curie=GX.curie('packetLoss'), + model_uri=GX.qoS__packetLoss, domain=None, range=Optional[Union[dict, PacketLoss]]) + +slots.qoS__jitter = Slot(uri=GX.jitter, name="qoS__jitter", curie=GX.curie('jitter'), + model_uri=GX.qoS__jitter, domain=None, range=Optional[Union[dict, Jitter]]) + +slots.qoS__latency = Slot(uri=GX.latency, name="qoS__latency", curie=GX.curie('latency'), + model_uri=GX.qoS__latency, domain=None, range=Optional[Union[dict, Latency]]) + +slots.qoS__targetPercentile = Slot(uri=GX.targetPercentile, name="qoS__targetPercentile", curie=GX.curie('targetPercentile'), + model_uri=GX.qoS__targetPercentile, domain=None, range=Optional[Union[dict, TargetPercentile]]) + +slots.floatPercentage__value = Slot(uri=GX.value, name="floatPercentage__value", curie=GX.curie('value'), + model_uri=GX.floatPercentage__value, domain=None, range=Optional[float]) + +slots.region__address = Slot(uri=GX.address, name="region__address", curie=GX.curie('address'), + model_uri=GX.region__address, domain=None, range=Optional[Union[dict, Address]]) slots.virtualResource__copyrightOwnedBy = Slot(uri=GX.copyrightOwnedBy, name="virtualResource__copyrightOwnedBy", curie=GX.curie('copyrightOwnedBy'), model_uri=GX.virtualResource__copyrightOwnedBy, domain=None, range=Union[str, List[str]]) @@ -12477,9 +37098,6 @@ class slots: slots.virtualResource__resourcePolicy = Slot(uri=GX.resourcePolicy, name="virtualResource__resourcePolicy", curie=GX.curie('resourcePolicy'), model_uri=GX.virtualResource__resourcePolicy, domain=None, range=Union[str, List[str]]) -slots.physicalResource__maintainedBy = Slot(uri=GX.maintainedBy, name="physicalResource__maintainedBy", curie=GX.curie('maintainedBy'), - model_uri=GX.physicalResource__maintainedBy, domain=None, range=Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]) - slots.physicalResource__ownedBy = Slot(uri=GX.ownedBy, name="physicalResource__ownedBy", curie=GX.curie('ownedBy'), model_uri=GX.physicalResource__ownedBy, domain=None, range=Optional[Union[Union[str, LegalPersonRegistrationNumber], List[Union[str, LegalPersonRegistrationNumber]]]]) @@ -12489,8 +37107,17 @@ class slots: slots.physicalResource__location = Slot(uri=GX.location, name="physicalResource__location", curie=GX.curie('location'), model_uri=GX.physicalResource__location, domain=None, range=Union[Union[dict, Address], List[Union[dict, Address]]]) -slots.softwareResource__checksum = Slot(uri=GX.checksum, name="softwareResource__checksum", curie=GX.curie('checksum'), - model_uri=GX.softwareResource__checksum, domain=None, range=Optional[Union[dict, CheckSum]]) +slots.physicalResource__energyUsageEfficiency = Slot(uri=GX.energyUsageEfficiency, name="physicalResource__energyUsageEfficiency", curie=GX.curie('energyUsageEfficiency'), + model_uri=GX.physicalResource__energyUsageEfficiency, domain=None, range=Optional[Union[dict, EnergyUsageEfficiency]]) + +slots.physicalResource__waterUsageEffectiveness = Slot(uri=GX.waterUsageEffectiveness, name="physicalResource__waterUsageEffectiveness", curie=GX.curie('waterUsageEffectiveness'), + model_uri=GX.physicalResource__waterUsageEffectiveness, domain=None, range=Optional[Union[dict, WaterUsageEffectiveness]]) + +slots.physicalResource__energyMix = Slot(uri=GX.energyMix, name="physicalResource__energyMix", curie=GX.curie('energyMix'), + model_uri=GX.physicalResource__energyMix, domain=None, range=Optional[Union[Union[dict, EnergyMix], List[Union[dict, EnergyMix]]]]) + +slots.softwareResource__checkSum = Slot(uri=GX.checkSum, name="softwareResource__checkSum", curie=GX.curie('checkSum'), + model_uri=GX.softwareResource__checkSum, domain=None, range=Optional[Union[dict, CheckSum]]) slots.softwareResource__signature = Slot(uri=GX.signature, name="softwareResource__signature", curie=GX.curie('signature'), model_uri=GX.softwareResource__signature, domain=None, range=Optional[Union[dict, Signature]]) @@ -12514,16 +37141,13 @@ class slots: model_uri=GX.serviceOffering__providedBy, domain=None, range=Union[str, LegalPersonRegistrationNumber]) slots.serviceOffering__dependsOn = Slot(uri=GX.dependsOn, name="serviceOffering__dependsOn", curie=GX.curie('dependsOn'), - model_uri=GX.serviceOffering__dependsOn, domain=None, range=Optional[Union[str, List[str]]]) - -slots.serviceOffering__aggregationOfResources = Slot(uri=GX.aggregationOfResources, name="serviceOffering__aggregationOfResources", curie=GX.curie('aggregationOfResources'), - model_uri=GX.serviceOffering__aggregationOfResources, domain=None, range=Optional[Union[str, List[str]]]) + model_uri=GX.serviceOffering__dependsOn, domain=None, range=Optional[Union[Union[dict, ServiceOffering], List[Union[dict, ServiceOffering]]]]) slots.serviceOffering__serviceOfferingTermsAndConditions = Slot(uri=GX.serviceOfferingTermsAndConditions, name="serviceOffering__serviceOfferingTermsAndConditions", curie=GX.curie('serviceOfferingTermsAndConditions'), model_uri=GX.serviceOffering__serviceOfferingTermsAndConditions, domain=None, range=Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]]) slots.serviceOffering__servicePolicy = Slot(uri=GX.servicePolicy, name="serviceOffering__servicePolicy", curie=GX.curie('servicePolicy'), - model_uri=GX.serviceOffering__servicePolicy, domain=None, range=Union[str, List[str]]) + model_uri=GX.serviceOffering__servicePolicy, domain=None, range=Optional[Union[Union[dict, AccessUsagePolicy], List[Union[dict, AccessUsagePolicy]]]]) slots.serviceOffering__dataProtectionRegime = Slot(uri=GX.dataProtectionRegime, name="serviceOffering__dataProtectionRegime", curie=GX.curie('dataProtectionRegime'), model_uri=GX.serviceOffering__dataProtectionRegime, domain=None, range=Optional[Union[Union[str, "PersonalDataProtectionRegime"], List[Union[str, "PersonalDataProtectionRegime"]]]]) @@ -12543,6 +37167,33 @@ class slots: slots.serviceOffering__hostedOn = Slot(uri=GX.hostedOn, name="serviceOffering__hostedOn", curie=GX.curie('hostedOn'), model_uri=GX.serviceOffering__hostedOn, domain=None, range=Optional[Union[str, List[str]]]) +slots.serviceOffering__serviceScope = Slot(uri=GX.serviceScope, name="serviceOffering__serviceScope", curie=GX.curie('serviceScope'), + model_uri=GX.serviceOffering__serviceScope, domain=None, range=Optional[str]) + +slots.serviceOffering__legalDocuments = Slot(uri=GX.legalDocuments, name="serviceOffering__legalDocuments", curie=GX.curie('legalDocuments'), + model_uri=GX.serviceOffering__legalDocuments, domain=None, range=Optional[Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]]) + +slots.serviceOffering__subContractors = Slot(uri=GX.subContractors, name="serviceOffering__subContractors", curie=GX.curie('subContractors'), + model_uri=GX.serviceOffering__subContractors, domain=None, range=Optional[Union[Union[dict, SubContractor], List[Union[dict, SubContractor]]]]) + +slots.serviceOffering__customerInstructions = Slot(uri=GX.customerInstructions, name="serviceOffering__customerInstructions", curie=GX.curie('customerInstructions'), + model_uri=GX.serviceOffering__customerInstructions, domain=None, range=Optional[Union[Union[dict, CustomerInstructions], List[Union[dict, CustomerInstructions]]]]) + +slots.serviceOffering__dataPortability = Slot(uri=GX.dataPortability, name="serviceOffering__dataPortability", curie=GX.curie('dataPortability'), + model_uri=GX.serviceOffering__dataPortability, domain=None, range=Optional[Union[Union[dict, DataPortability], List[Union[dict, DataPortability]]]]) + +slots.serviceOffering__possiblePersonalDataTransfers = Slot(uri=GX.possiblePersonalDataTransfers, name="serviceOffering__possiblePersonalDataTransfers", curie=GX.curie('possiblePersonalDataTransfers'), + model_uri=GX.serviceOffering__possiblePersonalDataTransfers, domain=None, range=Optional[Union[Union[dict, DataTransfer], List[Union[dict, DataTransfer]]]]) + +slots.serviceOffering__requiredMeasures = Slot(uri=GX.requiredMeasures, name="serviceOffering__requiredMeasures", curie=GX.curie('requiredMeasures'), + model_uri=GX.serviceOffering__requiredMeasures, domain=None, range=Optional[Union[Union[dict, Measure], List[Union[dict, Measure]]]]) + +slots.serviceOffering__cryptographicSecurityStandards = Slot(uri=GX.cryptographicSecurityStandards, name="serviceOffering__cryptographicSecurityStandards", curie=GX.curie('cryptographicSecurityStandards'), + model_uri=GX.serviceOffering__cryptographicSecurityStandards, domain=None, range=Optional[Union[Union[str, "CryptographicSecurityStandards"], List[Union[str, "CryptographicSecurityStandards"]]]]) + +slots.serviceOffering__providerContactInformation = Slot(uri=GX.providerContactInformation, name="serviceOffering__providerContactInformation", curie=GX.curie('providerContactInformation'), + model_uri=GX.serviceOffering__providerContactInformation, domain=None, range=Optional[Union[dict, ContactInformation]]) + slots.computeServiceOffering__tenantSeparation = Slot(uri=GX.tenantSeparation, name="computeServiceOffering__tenantSeparation", curie=GX.curie('tenantSeparation'), model_uri=GX.computeServiceOffering__tenantSeparation, domain=None, range=Optional[Union[str, "TenantSeparation"]]) @@ -12561,218 +37212,53 @@ class slots: slots.bareMetalServiceOffering__codeArtifact = Slot(uri=GX.codeArtifact, name="bareMetalServiceOffering__codeArtifact", curie=GX.curie('codeArtifact'), model_uri=GX.bareMetalServiceOffering__codeArtifact, domain=None, range=Union[Union[dict, PXEImage], List[Union[dict, PXEImage]]]) -slots.bareMetalServiceOffering__instantiationReq = Slot(uri=GX.instantiationReq, name="bareMetalServiceOffering__instantiationReq", curie=GX.curie('instantiationReq'), - model_uri=GX.bareMetalServiceOffering__instantiationReq, domain=None, range=Union[Union[dict, ServerFlavor], List[Union[dict, ServerFlavor]]]) - -slots.termsAndConditions__url = Slot(uri=GX.url, name="termsAndConditions__url", curie=GX.curie('url'), - model_uri=GX.termsAndConditions__url, domain=None, range=Union[str, URI]) - -slots.termsAndConditions__hash = Slot(uri=GX.hash, name="termsAndConditions__hash", curie=GX.curie('hash'), - model_uri=GX.termsAndConditions__hash, domain=None, range=str) - -slots.dataAccountExport__requestType = Slot(uri=GX.requestType, name="dataAccountExport__requestType", curie=GX.curie('requestType'), - model_uri=GX.dataAccountExport__requestType, domain=None, range=Union[str, "RequestTypes"]) - -slots.dataAccountExport__accessType = Slot(uri=GX.accessType, name="dataAccountExport__accessType", curie=GX.curie('accessType'), - model_uri=GX.dataAccountExport__accessType, domain=None, range=Union[str, "AccessTypes"]) - -slots.dataAccountExport__formatType = Slot(uri=GX.formatType, name="dataAccountExport__formatType", curie=GX.curie('formatType'), - model_uri=GX.dataAccountExport__formatType, domain=None, range=Union[str, "MIMETypes"]) - -slots.standardConformity__title = Slot(uri=GX.title, name="standardConformity__title", curie=GX.curie('title'), - model_uri=GX.standardConformity__title, domain=None, range=str) - -slots.standardConformity__standardReference = Slot(uri=GX.standardReference, name="standardConformity__standardReference", curie=GX.curie('standardReference'), - model_uri=GX.standardConformity__standardReference, domain=None, range=Union[str, URI]) - -slots.standardConformity__publisher = Slot(uri=GX.publisher, name="standardConformity__publisher", curie=GX.curie('publisher'), - model_uri=GX.standardConformity__publisher, domain=None, range=Optional[str]) - -slots.dataResource__producedBy = Slot(uri=GX.producedBy, name="dataResource__producedBy", curie=GX.curie('producedBy'), - model_uri=GX.dataResource__producedBy, domain=None, range=Union[str, LegalPersonRegistrationNumber]) - -slots.dataResource__exposedThrough = Slot(uri=GX.exposedThrough, name="dataResource__exposedThrough", curie=GX.curie('exposedThrough'), - model_uri=GX.dataResource__exposedThrough, domain=None, range=Union[Union[dict, DataExchangeComponent], List[Union[dict, DataExchangeComponent]]]) - -slots.dataResource__obsoleteDateTime = Slot(uri=GX.obsoleteDateTime, name="dataResource__obsoleteDateTime", curie=GX.curie('obsoleteDateTime'), - model_uri=GX.dataResource__obsoleteDateTime, domain=None, range=Optional[Union[str, XSDDateTime]]) - -slots.dataResource__expirationDateTime = Slot(uri=GX.expirationDateTime, name="dataResource__expirationDateTime", curie=GX.curie('expirationDateTime'), - model_uri=GX.dataResource__expirationDateTime, domain=None, range=Optional[Union[str, XSDDateTime]]) - -slots.dataResource__containsPII = Slot(uri=GX.containsPII, name="dataResource__containsPII", curie=GX.curie('containsPII'), - model_uri=GX.dataResource__containsPII, domain=None, range=Union[bool, Bool]) - -slots.dataResource__dataController = Slot(uri=GX.dataController, name="dataResource__dataController", curie=GX.curie('dataController'), - model_uri=GX.dataResource__dataController, domain=None, range=Optional[Union[Union[dict, Participant], List[Union[dict, Participant]]]]) - -slots.dataResource__consent = Slot(uri=GX.consent, name="dataResource__consent", curie=GX.curie('consent'), - model_uri=GX.dataResource__consent, domain=None, range=Optional[Union[Union[dict, Consent], List[Union[dict, Consent]]]]) - -slots.consent__legalBasis = Slot(uri=GX.legalBasis, name="consent__legalBasis", curie=GX.curie('legalBasis'), - model_uri=GX.consent__legalBasis, domain=None, range=str) - -slots.consent__dataProtectionContactPoint = Slot(uri=GX.dataProtectionContactPoint, name="consent__dataProtectionContactPoint", curie=GX.curie('dataProtectionContactPoint'), - model_uri=GX.consent__dataProtectionContactPoint, domain=None, range=Union[str, List[str]]) - -slots.consent__purpose = Slot(uri=GX.purpose, name="consent__purpose", curie=GX.curie('purpose'), - model_uri=GX.consent__purpose, domain=None, range=Union[str, List[str]]) - -slots.consent__consentWithdrawalContactPoint = Slot(uri=GX.consentWithdrawalContactPoint, name="consent__consentWithdrawalContactPoint", curie=GX.curie('consentWithdrawalContactPoint'), - model_uri=GX.consent__consentWithdrawalContactPoint, domain=None, range=Union[str, List[str]]) - -slots.datacenter__aggregationOfResources = Slot(uri=GX.aggregationOfResources, name="datacenter__aggregationOfResources", curie=GX.curie('aggregationOfResources'), - model_uri=GX.datacenter__aggregationOfResources, domain=None, range=Union[Union[dict, AvailabilityZone], List[Union[dict, AvailabilityZone]]]) - -slots.region__aggregationOfResources = Slot(uri=GX.aggregationOfResources, name="region__aggregationOfResources", curie=GX.curie('aggregationOfResources'), - model_uri=GX.region__aggregationOfResources, domain=None, range=Union[Union[dict, Datacenter], List[Union[dict, Datacenter]]]) - -slots.containerImage__baseContainerImage = Slot(uri=GX.baseContainerImage, name="containerImage__baseContainerImage", curie=GX.curie('baseContainerImage'), - model_uri=GX.containerImage__baseContainerImage, domain=None, range=Union[dict, BaseContainerImage]) - -slots.containerImage__containerFormat = Slot(uri=GX.containerFormat, name="containerImage__containerFormat", curie=GX.curie('containerFormat'), - model_uri=GX.containerImage__containerFormat, domain=None, range=Union[str, "ContainerFormat"]) - -slots.baseContainerImage__containerImageTag = Slot(uri=GX.containerImageTag, name="baseContainerImage__containerImageTag", curie=GX.curie('containerImageTag'), - model_uri=GX.baseContainerImage__containerImageTag, domain=None, range=Optional[Union[str, List[str]]]) - -slots.baseContainerImage__containerImageLink = Slot(uri=GX.containerImageLink, name="baseContainerImage__containerImageLink", curie=GX.curie('containerImageLink'), - model_uri=GX.baseContainerImage__containerImageLink, domain=None, range=Union[str, URI]) - -slots.containerResourceLimits__cpuRequirements = Slot(uri=GX.cpuRequirements, name="containerResourceLimits__cpuRequirements", curie=GX.curie('cpuRequirements'), - model_uri=GX.containerResourceLimits__cpuRequirements, domain=None, range=Optional[Union[dict, CPU]]) - -slots.containerResourceLimits__numberOfCoresLimit = Slot(uri=GX.numberOfCoresLimit, name="containerResourceLimits__numberOfCoresLimit", curie=GX.curie('numberOfCoresLimit'), - model_uri=GX.containerResourceLimits__numberOfCoresLimit, domain=None, range=Optional[int]) - -slots.containerResourceLimits__memoryRequirements = Slot(uri=GX.memoryRequirements, name="containerResourceLimits__memoryRequirements", curie=GX.curie('memoryRequirements'), - model_uri=GX.containerResourceLimits__memoryRequirements, domain=None, range=Optional[Union[dict, Memory]]) - -slots.containerResourceLimits__memoryLimit = Slot(uri=GX.memoryLimit, name="containerResourceLimits__memoryLimit", curie=GX.curie('memoryLimit'), - model_uri=GX.containerResourceLimits__memoryLimit, domain=None, range=Optional[Union[dict, MemorySize]]) - -slots.containerResourceLimits__gpuRequirements = Slot(uri=GX.gpuRequirements, name="containerResourceLimits__gpuRequirements", curie=GX.curie('gpuRequirements'), - model_uri=GX.containerResourceLimits__gpuRequirements, domain=None, range=Optional[Union[dict, GPU]]) - -slots.containerResourceLimits__gpuLimit = Slot(uri=GX.gpuLimit, name="containerResourceLimits__gpuLimit", curie=GX.curie('gpuLimit'), - model_uri=GX.containerResourceLimits__gpuLimit, domain=None, range=Optional[int]) - -slots.containerResourceLimits__confidential = Slot(uri=GX.confidential, name="containerResourceLimits__confidential", curie=GX.curie('confidential'), - model_uri=GX.containerResourceLimits__confidential, domain=None, range=Union[bool, Bool]) - -slots.containerResourceLimits__confidentialComputingTechnology = Slot(uri=GX.confidentialComputingTechnology, name="containerResourceLimits__confidentialComputingTechnology", curie=GX.curie('confidentialComputingTechnology'), - model_uri=GX.containerResourceLimits__confidentialComputingTechnology, domain=None, range=Optional[Union[dict, ConfidentialComputing]]) - -slots.dataProtectionPolicy__protectionFrequency = Slot(uri=GX.protectionFrequency, name="dataProtectionPolicy__protectionFrequency", curie=GX.curie('protectionFrequency'), - model_uri=GX.dataProtectionPolicy__protectionFrequency, domain=None, range=Union[str, "ProtectionFrequency"]) - -slots.dataProtectionPolicy__protectionRetention = Slot(uri=GX.protectionRetention, name="dataProtectionPolicy__protectionRetention", curie=GX.curie('protectionRetention'), - model_uri=GX.dataProtectionPolicy__protectionRetention, domain=None, range=Union[dict, RetentionDuration]) - -slots.dataProtectionPolicy__protectionMethod = Slot(uri=GX.protectionMethod, name="dataProtectionPolicy__protectionMethod", curie=GX.curie('protectionMethod'), - model_uri=GX.dataProtectionPolicy__protectionMethod, domain=None, range=Optional[Union[str, "ProtectionMethod"]]) - -slots.backupPolicy__backupLocation = Slot(uri=GX.backupLocation, name="backupPolicy__backupLocation", curie=GX.curie('backupLocation'), - model_uri=GX.backupPolicy__backupLocation, domain=None, range=Union[Union[dict, Resource], List[Union[dict, Resource]]]) - -slots.backupPolicy__backupReplication = Slot(uri=GX.backupReplication, name="backupPolicy__backupReplication", curie=GX.curie('backupReplication'), - model_uri=GX.backupPolicy__backupReplication, domain=None, range=Optional[Union[Union[dict, ReplicationPolicy], List[Union[dict, ReplicationPolicy]]]]) - -slots.snapshotPolicy__snapshotReplication = Slot(uri=GX.snapshotReplication, name="snapshotPolicy__snapshotReplication", curie=GX.curie('snapshotReplication'), - model_uri=GX.snapshotPolicy__snapshotReplication, domain=None, range=Optional[Union[Union[dict, ReplicationPolicy], List[Union[dict, ReplicationPolicy]]]]) - -slots.replicationPolicy__synchronousReplication = Slot(uri=GX.synchronousReplication, name="replicationPolicy__synchronousReplication", curie=GX.curie('synchronousReplication'), - model_uri=GX.replicationPolicy__synchronousReplication, domain=None, range=Optional[Union[bool, Bool]]) - -slots.replicationPolicy__consistencyType = Slot(uri=GX.consistencyType, name="replicationPolicy__consistencyType", curie=GX.curie('consistencyType'), - model_uri=GX.replicationPolicy__consistencyType, domain=None, range=Optional[Union[str, "ConsistencyType"]]) - -slots.replicationPolicy__replicaNumber = Slot(uri=GX.replicaNumber, name="replicationPolicy__replicaNumber", curie=GX.curie('replicaNumber'), - model_uri=GX.replicationPolicy__replicaNumber, domain=None, range=Optional[Union[int, List[int]]]) - -slots.replicationPolicy__geoReplication = Slot(uri=GX.geoReplication, name="replicationPolicy__geoReplication", curie=GX.curie('geoReplication'), - model_uri=GX.replicationPolicy__geoReplication, domain=None, range=Optional[Union[Union[str, "GeoReplicationScope"], List[Union[str, "GeoReplicationScope"]]]]) - -slots.qoSMetric__metric = Slot(uri=GX.metric, name="qoSMetric__metric", curie=GX.curie('metric'), - model_uri=GX.qoSMetric__metric, domain=None, range=Union[dict, Quantity]) - -slots.qoSMetric__guaranteed = Slot(uri=GX.guaranteed, name="qoSMetric__guaranteed", curie=GX.curie('guaranteed'), - model_uri=GX.qoSMetric__guaranteed, domain=None, range=Optional[Union[dict, FloatPercentage]]) - -slots.bandWidth__metric = Slot(uri=GX.metric, name="bandWidth__metric", curie=GX.curie('metric'), - model_uri=GX.bandWidth__metric, domain=None, range=Union[dict, DataRate]) - -slots.roundTripTime__metric = Slot(uri=GX.metric, name="roundTripTime__metric", curie=GX.curie('metric'), - model_uri=GX.roundTripTime__metric, domain=None, range=Union[dict, Time]) - -slots.availability__metric = Slot(uri=GX.metric, name="availability__metric", curie=GX.curie('metric'), - model_uri=GX.availability__metric, domain=None, range=Union[dict, Time]) - -slots.packetLoss__metric = Slot(uri=GX.metric, name="packetLoss__metric", curie=GX.curie('metric'), - model_uri=GX.packetLoss__metric, domain=None, range=Union[dict, FloatPercentage]) - -slots.jitter__metric = Slot(uri=GX.metric, name="jitter__metric", curie=GX.curie('metric'), - model_uri=GX.jitter__metric, domain=None, range=Union[dict, Time]) - -slots.latency__metric = Slot(uri=GX.metric, name="latency__metric", curie=GX.curie('metric'), - model_uri=GX.latency__metric, domain=None, range=Union[dict, Time]) - -slots.targetPercentile__metric = Slot(uri=GX.metric, name="targetPercentile__metric", curie=GX.curie('metric'), - model_uri=GX.targetPercentile__metric, domain=None, range=Union[dict, FloatPercentage]) - -slots.throughput__metric = Slot(uri=GX.metric, name="throughput__metric", curie=GX.curie('metric'), - model_uri=GX.throughput__metric, domain=None, range=Union[dict, DataRate]) - -slots.iOPS__metric = Slot(uri=GX.metric, name="iOPS__metric", curie=GX.curie('metric'), - model_uri=GX.iOPS__metric, domain=None, range=Union[dict, DataRate]) - -slots.qoS__throughput = Slot(uri=GX.throughput, name="qoS__throughput", curie=GX.curie('throughput'), - model_uri=GX.qoS__throughput, domain=None, range=Optional[Union[dict, Throughput]]) +slots.bareMetalServiceOffering__instantiationReq = Slot(uri=GX.instantiationReq, name="bareMetalServiceOffering__instantiationReq", curie=GX.curie('instantiationReq'), + model_uri=GX.bareMetalServiceOffering__instantiationReq, domain=None, range=Union[Union[dict, ServerFlavor], List[Union[dict, ServerFlavor]]]) -slots.qoS__iops = Slot(uri=GX.iops, name="qoS__iops", curie=GX.curie('iops'), - model_uri=GX.qoS__iops, domain=None, range=Optional[Union[dict, IOPS]]) +slots.termsAndConditions__url = Slot(uri=GX.url, name="termsAndConditions__url", curie=GX.curie('url'), + model_uri=GX.termsAndConditions__url, domain=None, range=Union[str, URI]) -slots.qoS__bandWidth = Slot(uri=GX.bandWidth, name="qoS__bandWidth", curie=GX.curie('bandWidth'), - model_uri=GX.qoS__bandWidth, domain=None, range=Optional[Union[dict, BandWidth]]) +slots.termsAndConditions__hash = Slot(uri=GX.hash, name="termsAndConditions__hash", curie=GX.curie('hash'), + model_uri=GX.termsAndConditions__hash, domain=None, range=str) -slots.qoS__roundTripTime = Slot(uri=GX.roundTripTime, name="qoS__roundTripTime", curie=GX.curie('roundTripTime'), - model_uri=GX.qoS__roundTripTime, domain=None, range=Optional[Union[dict, RoundTripTime]]) +slots.dataAccountExport__requestType = Slot(uri=GX.requestType, name="dataAccountExport__requestType", curie=GX.curie('requestType'), + model_uri=GX.dataAccountExport__requestType, domain=None, range=Union[str, "RequestTypes"]) -slots.qoS__availability = Slot(uri=GX.availability, name="qoS__availability", curie=GX.curie('availability'), - model_uri=GX.qoS__availability, domain=None, range=Optional[Union[dict, Availability]]) +slots.dataAccountExport__accessType = Slot(uri=GX.accessType, name="dataAccountExport__accessType", curie=GX.curie('accessType'), + model_uri=GX.dataAccountExport__accessType, domain=None, range=Union[str, "AccessTypes"]) -slots.qoS__packetLoss = Slot(uri=GX.packetLoss, name="qoS__packetLoss", curie=GX.curie('packetLoss'), - model_uri=GX.qoS__packetLoss, domain=None, range=Optional[Union[dict, PacketLoss]]) +slots.dataAccountExport__formatType = Slot(uri=GX.formatType, name="dataAccountExport__formatType", curie=GX.curie('formatType'), + model_uri=GX.dataAccountExport__formatType, domain=None, range=Union[str, "MIMETypes"]) -slots.qoS__jitter = Slot(uri=GX.jitter, name="qoS__jitter", curie=GX.curie('jitter'), - model_uri=GX.qoS__jitter, domain=None, range=Optional[Union[dict, Jitter]]) +slots.standardConformity__title = Slot(uri=GX.title, name="standardConformity__title", curie=GX.curie('title'), + model_uri=GX.standardConformity__title, domain=None, range=str) -slots.qoS__latency = Slot(uri=GX.latency, name="qoS__latency", curie=GX.curie('latency'), - model_uri=GX.qoS__latency, domain=None, range=Optional[Union[dict, Latency]]) +slots.standardConformity__standardReference = Slot(uri=GX.standardReference, name="standardConformity__standardReference", curie=GX.curie('standardReference'), + model_uri=GX.standardConformity__standardReference, domain=None, range=Union[str, URI]) -slots.qoS__targetPercentile = Slot(uri=GX.targetPercentile, name="qoS__targetPercentile", curie=GX.curie('targetPercentile'), - model_uri=GX.qoS__targetPercentile, domain=None, range=Optional[Union[dict, TargetPercentile]]) +slots.standardConformity__publisher = Slot(uri=GX.publisher, name="standardConformity__publisher", curie=GX.curie('publisher'), + model_uri=GX.standardConformity__publisher, domain=None, range=Optional[str]) slots.storageConfiguration__storageCompression = Slot(uri=GX.storageCompression, name="storageConfiguration__storageCompression", curie=GX.curie('storageCompression'), - model_uri=GX.storageConfiguration__storageCompression, domain=None, range=Optional[Union[Union[str, "CompressionAlgorithm"], List[Union[str, "CompressionAlgorithm"]]]]) + model_uri=GX.storageConfiguration__storageCompression, domain=None, range=Optional[Union[str, "CompressionAlgorithm"]]) slots.storageConfiguration__storageDeduplication = Slot(uri=GX.storageDeduplication, name="storageConfiguration__storageDeduplication", curie=GX.curie('storageDeduplication'), - model_uri=GX.storageConfiguration__storageDeduplication, domain=None, range=Optional[Union[Union[str, "DeduplicationMethod"], List[Union[str, "DeduplicationMethod"]]]]) + model_uri=GX.storageConfiguration__storageDeduplication, domain=None, range=Optional[Union[str, "DeduplicationMethod"]]) slots.storageConfiguration__storageEncryption = Slot(uri=GX.storageEncryption, name="storageConfiguration__storageEncryption", curie=GX.curie('storageEncryption'), - model_uri=GX.storageConfiguration__storageEncryption, domain=None, range=Union[Union[dict, Encryption], List[Union[dict, Encryption]]]) + model_uri=GX.storageConfiguration__storageEncryption, domain=None, range=Optional[Union[dict, Encryption]]) slots.storageConfiguration__storageRedundancyMechanism = Slot(uri=GX.storageRedundancyMechanism, name="storageConfiguration__storageRedundancyMechanism", curie=GX.curie('storageRedundancyMechanism'), - model_uri=GX.storageConfiguration__storageRedundancyMechanism, domain=None, range=Optional[Union[Union[str, "StorageRedundancyMechanism"], List[Union[str, "StorageRedundancyMechanism"]]]]) + model_uri=GX.storageConfiguration__storageRedundancyMechanism, domain=None, range=Optional[Union[dict, StorageRedundancyMechanism]]) -slots.storageConfiguration__storageProtection = Slot(uri=GX.storageProtection, name="storageConfiguration__storageProtection", curie=GX.curie('storageProtection'), - model_uri=GX.storageConfiguration__storageProtection, domain=None, range=Optional[Union[Union[dict, DataProtectionPolicy], List[Union[dict, DataProtectionPolicy]]]]) +slots.storageConfiguration__backupPolicy = Slot(uri=GX.backupPolicy, name="storageConfiguration__backupPolicy", curie=GX.curie('backupPolicy'), + model_uri=GX.storageConfiguration__backupPolicy, domain=None, range=Optional[Union[Union[dict, BackupPolicy], List[Union[dict, BackupPolicy]]]]) slots.storageConfiguration__storageQoS = Slot(uri=GX.storageQoS, name="storageConfiguration__storageQoS", curie=GX.curie('storageQoS'), - model_uri=GX.storageConfiguration__storageQoS, domain=None, range=Optional[Union[Union[dict, QoS], List[Union[dict, QoS]]]]) + model_uri=GX.storageConfiguration__storageQoS, domain=None, range=Optional[Union[dict, QoS]]) slots.storageConfiguration__blockSize = Slot(uri=GX.blockSize, name="storageConfiguration__blockSize", curie=GX.curie('blockSize'), - model_uri=GX.storageConfiguration__blockSize, domain=None, range=Optional[Union[Union[dict, MemorySize], List[Union[dict, MemorySize]]]]) + model_uri=GX.storageConfiguration__blockSize, domain=None, range=Optional[Union[dict, MemorySize]]) slots.fileStorageConfiguration__fileSystemType = Slot(uri=GX.fileSystemType, name="fileStorageConfiguration__fileSystemType", curie=GX.curie('fileSystemType'), model_uri=GX.fileStorageConfiguration__fileSystemType, domain=None, range=Optional[Union[Union[str, "FileSystemType"], List[Union[str, "FileSystemType"]]]]) @@ -12780,11 +37266,50 @@ class slots: slots.fileStorageConfiguration__highLevelAccessProtocol = Slot(uri=GX.highLevelAccessProtocol, name="fileStorageConfiguration__highLevelAccessProtocol", curie=GX.curie('highLevelAccessProtocol'), model_uri=GX.fileStorageConfiguration__highLevelAccessProtocol, domain=None, range=Optional[Union[Union[str, "FileAccessProtocol"], List[Union[str, "FileAccessProtocol"]]]]) +slots.blockStorageConfiguration__userSnapshots = Slot(uri=GX.userSnapshots, name="blockStorageConfiguration__userSnapshots", curie=GX.curie('userSnapshots'), + model_uri=GX.blockStorageConfiguration__userSnapshots, domain=None, range=Optional[Union[dict, SnapshotPolicy]]) + slots.blockStorageConfiguration__blockStorageTechnology = Slot(uri=GX.blockStorageTechnology, name="blockStorageConfiguration__blockStorageTechnology", curie=GX.curie('blockStorageTechnology'), - model_uri=GX.blockStorageConfiguration__blockStorageTechnology, domain=None, range=Optional[Union[Union[str, "BlockStorageTechnology"], List[Union[str, "BlockStorageTechnology"]]]]) + model_uri=GX.blockStorageConfiguration__blockStorageTechnology, domain=None, range=Optional[Union[str, "BlockStorageTechnology"]]) slots.blockStorageConfiguration__lowLevelBlockAccessProtocol = Slot(uri=GX.lowLevelBlockAccessProtocol, name="blockStorageConfiguration__lowLevelBlockAccessProtocol", curie=GX.curie('lowLevelBlockAccessProtocol'), - model_uri=GX.blockStorageConfiguration__lowLevelBlockAccessProtocol, domain=None, range=Optional[Union[Union[str, "BlockAccessProtocol"], List[Union[str, "BlockAccessProtocol"]]]]) + model_uri=GX.blockStorageConfiguration__lowLevelBlockAccessProtocol, domain=None, range=Optional[Union[str, "BlockAccessProtocol"]]) + +slots.backupPolicy__backupFrequency = Slot(uri=GX.backupFrequency, name="backupPolicy__backupFrequency", curie=GX.curie('backupFrequency'), + model_uri=GX.backupPolicy__backupFrequency, domain=None, range=Union[str, "BackupFrequency"]) + +slots.backupPolicy__backupRetention = Slot(uri=GX.backupRetention, name="backupPolicy__backupRetention", curie=GX.curie('backupRetention'), + model_uri=GX.backupPolicy__backupRetention, domain=None, range=str) + +slots.backupPolicy__backupMethod = Slot(uri=GX.backupMethod, name="backupPolicy__backupMethod", curie=GX.curie('backupMethod'), + model_uri=GX.backupPolicy__backupMethod, domain=None, range=Union[str, "BackupMethod"]) + +slots.backupPolicy__backupReplication = Slot(uri=GX.backupReplication, name="backupPolicy__backupReplication", curie=GX.curie('backupReplication'), + model_uri=GX.backupPolicy__backupReplication, domain=None, range=Union[Union[dict, ReplicationPolicy], List[Union[dict, ReplicationPolicy]]]) + +slots.rAID__raidLevel = Slot(uri=GX.raidLevel, name="rAID__raidLevel", curie=GX.curie('raidLevel'), + model_uri=GX.rAID__raidLevel, domain=None, range=Union[str, "RAIDLevel"]) + +slots.replicationPolicy__isSynchronous = Slot(uri=GX.isSynchronous, name="replicationPolicy__isSynchronous", curie=GX.curie('isSynchronous'), + model_uri=GX.replicationPolicy__isSynchronous, domain=None, range=Optional[Union[bool, Bool]]) + +slots.replicationPolicy__consistencyType = Slot(uri=GX.consistencyType, name="replicationPolicy__consistencyType", curie=GX.curie('consistencyType'), + model_uri=GX.replicationPolicy__consistencyType, domain=None, range=Optional[Union[str, "ConsistencyType"]]) + +slots.replicationPolicy__replicas = Slot(uri=GX.replicas, name="replicationPolicy__replicas", curie=GX.curie('replicas'), + model_uri=GX.replicationPolicy__replicas, domain=None, range=Union[Union[dict, Replica], List[Union[dict, Replica]]]) + +slots.replicationPolicy__geoReplication = Slot(uri=GX.geoReplication, name="replicationPolicy__geoReplication", curie=GX.curie('geoReplication'), + model_uri=GX.replicationPolicy__geoReplication, domain=None, range=Optional[Union[Union[str, "GeoReplicationScope"], List[Union[str, "GeoReplicationScope"]]]]) + +slots.replica__replicaLocation = Slot(uri=GX.replicaLocation, name="replica__replicaLocation", curie=GX.curie('replicaLocation'), + model_uri=GX.replica__replicaLocation, domain=None, range=Union[dict, PhysicalResource]) + +slots.erasureCoding__erasureCode = Slot(uri=GX.erasureCode, name="erasureCoding__erasureCode", curie=GX.curie('erasureCode'), + model_uri=GX.erasureCoding__erasureCode, domain=None, range=Union[str, "ErasureCode"]) + +slots.snapshotPolicy__snapshotReplication = Slot(uri=GX.snapshotReplication, name="snapshotPolicy__snapshotReplication", curie=GX.curie('snapshotReplication'), + model_uri=GX.snapshotPolicy__snapshotReplication, domain=None, range=Optional[Union[Union[dict, ReplicationPolicy], List[Union[dict, ReplicationPolicy]]]]) slots.storageServiceOffering__minimumSize = Slot(uri=GX.minimumSize, name="storageServiceOffering__minimumSize", curie=GX.curie('minimumSize'), model_uri=GX.storageServiceOffering__minimumSize, domain=None, range=Optional[Union[dict, MemorySize]]) @@ -12831,253 +37356,221 @@ class slots: slots.objectStorageServiceOffering__objectAPICompatibility = Slot(uri=GX.objectAPICompatibility, name="objectStorageServiceOffering__objectAPICompatibility", curie=GX.curie('objectAPICompatibility'), model_uri=GX.objectStorageServiceOffering__objectAPICompatibility, domain=None, range=Optional[Union[Union[str, "StorageAPI"], List[Union[str, "StorageAPI"]]]]) -slots.connectivityServiceOffering__connectivityConfiguration = Slot(uri=GX.connectivityConfiguration, name="connectivityServiceOffering__connectivityConfiguration", curie=GX.curie('connectivityConfiguration'), - model_uri=GX.connectivityServiceOffering__connectivityConfiguration, domain=None, range=Union[Union[dict, ConnectivityConfiguration], List[Union[dict, ConnectivityConfiguration]]]) - -slots.connectivityServiceOffering__connectivityQoS = Slot(uri=GX.connectivityQoS, name="connectivityServiceOffering__connectivityQoS", curie=GX.curie('connectivityQoS'), - model_uri=GX.connectivityServiceOffering__connectivityQoS, domain=None, range=Optional[Union[dict, QoS]]) - -slots.networkConnectivityServiceOffering__serviceType = Slot(uri=GX.serviceType, name="networkConnectivityServiceOffering__serviceType", curie=GX.curie('serviceType'), - model_uri=GX.networkConnectivityServiceOffering__serviceType, domain=None, range=Optional[str]) - -slots.networkConnectivityServiceOffering__publicIpAddressProvisioning = Slot(uri=GX.publicIpAddressProvisioning, name="networkConnectivityServiceOffering__publicIpAddressProvisioning", curie=GX.curie('publicIpAddressProvisioning'), - model_uri=GX.networkConnectivityServiceOffering__publicIpAddressProvisioning, domain=None, range=Optional[Union[str, "PublicIpAddressProvisioningTypes"]]) - -slots.networkConnectivityServiceOffering__ipVersion = Slot(uri=GX.ipVersion, name="networkConnectivityServiceOffering__ipVersion", curie=GX.curie('ipVersion'), - model_uri=GX.networkConnectivityServiceOffering__ipVersion, domain=None, range=Optional[Union[str, "IpVersionTypes"]]) - -slots.networkConnectivityServiceOffering__tenantSeparation = Slot(uri=GX.tenantSeparation, name="networkConnectivityServiceOffering__tenantSeparation", curie=GX.curie('tenantSeparation'), - model_uri=GX.networkConnectivityServiceOffering__tenantSeparation, domain=None, range=Optional[Union[str, "TenantSeparation"]]) - -slots.interconnectionServiceOffering__connectedNetworkA = Slot(uri=GX.connectedNetworkA, name="interconnectionServiceOffering__connectedNetworkA", curie=GX.curie('connectedNetworkA'), - model_uri=GX.interconnectionServiceOffering__connectedNetworkA, domain=None, range=Optional[Union[int, List[int]]]) - -slots.interconnectionServiceOffering__connectedNetworkZ = Slot(uri=GX.connectedNetworkZ, name="interconnectionServiceOffering__connectedNetworkZ", curie=GX.curie('connectedNetworkZ'), - model_uri=GX.interconnectionServiceOffering__connectedNetworkZ, domain=None, range=Optional[Union[int, List[int]]]) - -slots.interconnectionServiceOffering__prefixSetA = Slot(uri=GX.prefixSetA, name="interconnectionServiceOffering__prefixSetA", curie=GX.curie('prefixSetA'), - model_uri=GX.interconnectionServiceOffering__prefixSetA, domain=None, range=Optional[Union[str, List[str]]]) - -slots.interconnectionServiceOffering__prefixSetZ = Slot(uri=GX.prefixSetZ, name="interconnectionServiceOffering__prefixSetZ", curie=GX.curie('prefixSetZ'), - model_uri=GX.interconnectionServiceOffering__prefixSetZ, domain=None, range=Optional[Union[str, List[str]]]) - -slots.interconnectionServiceOffering__vlanConfiguration = Slot(uri=GX.vlanConfiguration, name="interconnectionServiceOffering__vlanConfiguration", curie=GX.curie('vlanConfiguration'), - model_uri=GX.interconnectionServiceOffering__vlanConfiguration, domain=None, range=Optional[Union[dict, VLANConfiguration]]) +slots.subContractor__applicableJurisdiction = Slot(uri=GX.applicableJurisdiction, name="subContractor__applicableJurisdiction", curie=GX.curie('applicableJurisdiction'), + model_uri=GX.subContractor__applicableJurisdiction, domain=None, range=Union[str, "CountryNameAlpha2"]) -slots.interconnectionServiceOffering__connectionType = Slot(uri=GX.connectionType, name="interconnectionServiceOffering__connectionType", curie=GX.curie('connectionType'), - model_uri=GX.interconnectionServiceOffering__connectionType, domain=None, range=Optional[Union[str, List[str]]]) +slots.subContractor__legalName = Slot(uri=GX.legalName, name="subContractor__legalName", curie=GX.curie('legalName'), + model_uri=GX.subContractor__legalName, domain=None, range=str) -slots.interconnectionServiceOffering__interfaceType = Slot(uri=GX.interfaceType, name="interconnectionServiceOffering__interfaceType", curie=GX.curie('interfaceType'), - model_uri=GX.interconnectionServiceOffering__interfaceType, domain=None, range=Optional[Union[str, List[str]]]) +slots.subContractor__communicationMethods = Slot(uri=GX.communicationMethods, name="subContractor__communicationMethods", curie=GX.curie('communicationMethods'), + model_uri=GX.subContractor__communicationMethods, domain=None, range=Union[str, List[str]]) -slots.linkConnectivityServiceOffering__protocolType = Slot(uri=GX.protocolType, name="linkConnectivityServiceOffering__protocolType", curie=GX.curie('protocolType'), - model_uri=GX.linkConnectivityServiceOffering__protocolType, domain=None, range=Union[str, "ProtocolType"]) +slots.subContractor__informationDocuments = Slot(uri=GX.informationDocuments, name="subContractor__informationDocuments", curie=GX.curie('informationDocuments'), + model_uri=GX.subContractor__informationDocuments, domain=None, range=Union[str, List[str]]) -slots.linkConnectivityServiceOffering__vlanConfiguration = Slot(uri=GX.vlanConfiguration, name="linkConnectivityServiceOffering__vlanConfiguration", curie=GX.curie('vlanConfiguration'), - model_uri=GX.linkConnectivityServiceOffering__vlanConfiguration, domain=None, range=Optional[Union[dict, VLANConfiguration]]) +slots.subProcessorDataTransfer__subProcessor = Slot(uri=GX.subProcessor, name="subProcessorDataTransfer__subProcessor", curie=GX.curie('subProcessor'), + model_uri=GX.subProcessorDataTransfer__subProcessor, domain=None, range=Optional[Union[str, LegalPersonRegistrationNumber]]) -slots.physicalConnectivityServiceOffering__circuitType = Slot(uri=GX.circuitType, name="physicalConnectivityServiceOffering__circuitType", curie=GX.curie('circuitType'), - model_uri=GX.physicalConnectivityServiceOffering__circuitType, domain=None, range=str) +slots.subProcessorDataTransfer__subProcessorManagement = Slot(uri=GX.subProcessorManagement, name="subProcessorDataTransfer__subProcessorManagement", curie=GX.curie('subProcessorManagement'), + model_uri=GX.subProcessorDataTransfer__subProcessorManagement, domain=None, range=Union[dict, LegalDocument]) -slots.physicalConnectivityServiceOffering__interfaceType = Slot(uri=GX.interfaceType, name="physicalConnectivityServiceOffering__interfaceType", curie=GX.curie('interfaceType'), - model_uri=GX.physicalConnectivityServiceOffering__interfaceType, domain=None, range=str) +slots.thirdCountryDataTransfer__country = Slot(uri=GX.country, name="thirdCountryDataTransfer__country", curie=GX.curie('country'), + model_uri=GX.thirdCountryDataTransfer__country, domain=None, range=Union[str, "CountryNameAlpha2"]) -slots.connectivityConfiguration__sourceIdentifierA = Slot(uri=GX.sourceIdentifierA, name="connectivityConfiguration__sourceIdentifierA", curie=GX.curie('sourceIdentifierA'), - model_uri=GX.connectivityConfiguration__sourceIdentifierA, domain=None, range=Optional[str]) +slots.thirdCountryDataTransfer__securingMechanism = Slot(uri=GX.securingMechanism, name="thirdCountryDataTransfer__securingMechanism", curie=GX.curie('securingMechanism'), + model_uri=GX.thirdCountryDataTransfer__securingMechanism, domain=None, range=Union[str, List[str]]) -slots.connectivityConfiguration__destinationIdentifierZ = Slot(uri=GX.destinationIdentifierZ, name="connectivityConfiguration__destinationIdentifierZ", curie=GX.curie('destinationIdentifierZ'), - model_uri=GX.connectivityConfiguration__destinationIdentifierZ, domain=None, range=Optional[str]) +slots.waterUsageEffectiveness__certifications = Slot(uri=GX.certifications, name="waterUsageEffectiveness__certifications", curie=GX.curie('certifications'), + model_uri=GX.waterUsageEffectiveness__certifications, domain=None, range=Optional[Union[Union[dict, LegalDocument], List[Union[dict, LegalDocument]]]]) -slots.physicalInterconnectionPointIdentifier__interconnectionPointIdentifier = Slot(uri=GX.interconnectionPointIdentifier, name="physicalInterconnectionPointIdentifier__interconnectionPointIdentifier", curie=GX.curie('interconnectionPointIdentifier'), - model_uri=GX.physicalInterconnectionPointIdentifier__interconnectionPointIdentifier, domain=None, range=Union[str, InterconnectionPointIdentifierCompleteIPI]) +slots.waterUsageEffectiveness__waterUsageEffectiveness = Slot(uri=GX.waterUsageEffectiveness, name="waterUsageEffectiveness__waterUsageEffectiveness", curie=GX.curie('waterUsageEffectiveness'), + model_uri=GX.waterUsageEffectiveness__waterUsageEffectiveness, domain=None, range=float) -slots.virtualInterconnectionPointIdentifier__interconnectionPointIdentifier = Slot(uri=GX.interconnectionPointIdentifier, name="virtualInterconnectionPointIdentifier__interconnectionPointIdentifier", curie=GX.curie('interconnectionPointIdentifier'), - model_uri=GX.virtualInterconnectionPointIdentifier__interconnectionPointIdentifier, domain=None, range=Union[str, InterconnectionPointIdentifierCompleteIPI]) +slots.serverFlavor__cpu = Slot(uri=GX.cpu, name="serverFlavor__cpu", curie=GX.curie('cpu'), + model_uri=GX.serverFlavor__cpu, domain=None, range=Union[dict, CpuCapabilities]) -slots.interconnectionPointIdentifier__ipiType = Slot(uri=GX.ipiType, name="interconnectionPointIdentifier__ipiType", curie=GX.curie('ipiType'), - model_uri=GX.interconnectionPointIdentifier__ipiType, domain=None, range=Optional[Union[str, "IPIType"]]) +slots.serverFlavor__memory = Slot(uri=GX.memory, name="serverFlavor__memory", curie=GX.curie('memory'), + model_uri=GX.serverFlavor__memory, domain=None, range=Union[dict, MemoryCapabilities]) -slots.interconnectionPointIdentifier__ipiProvider = Slot(uri=GX.ipiProvider, name="interconnectionPointIdentifier__ipiProvider", curie=GX.curie('ipiProvider'), - model_uri=GX.interconnectionPointIdentifier__ipiProvider, domain=None, range=Optional[str]) +slots.serverFlavor__gpu = Slot(uri=GX.gpu, name="serverFlavor__gpu", curie=GX.curie('gpu'), + model_uri=GX.serverFlavor__gpu, domain=None, range=Optional[Union[dict, GPU]]) -slots.interconnectionPointIdentifier__specificParameters = Slot(uri=GX.specificParameters, name="interconnectionPointIdentifier__specificParameters", curie=GX.curie('specificParameters'), - model_uri=GX.interconnectionPointIdentifier__specificParameters, domain=None, range=Optional[str]) +slots.serverFlavor__network = Slot(uri=GX.network, name="serverFlavor__network", curie=GX.curie('network'), + model_uri=GX.serverFlavor__network, domain=None, range=Optional[str]) -slots.interconnectionPointIdentifier__completeIPI = Slot(uri=GX.completeIPI, name="interconnectionPointIdentifier__completeIPI", curie=GX.curie('completeIPI'), - model_uri=GX.interconnectionPointIdentifier__completeIPI, domain=None, range=URIRef) +slots.serverFlavor__bootVolume = Slot(uri=GX.bootVolume, name="serverFlavor__bootVolume", curie=GX.curie('bootVolume'), + model_uri=GX.serverFlavor__bootVolume, domain=None, range=Union[dict, Disk]) -slots.interconnectionPointIdentifier__datacenterAllocation = Slot(uri=GX.datacenterAllocation, name="interconnectionPointIdentifier__datacenterAllocation", curie=GX.curie('datacenterAllocation'), - model_uri=GX.interconnectionPointIdentifier__datacenterAllocation, domain=None, range=Optional[Union[dict, DatacenterAllocation]]) +slots.serverFlavor__additionalVolume = Slot(uri=GX.additionalVolume, name="serverFlavor__additionalVolume", curie=GX.curie('additionalVolume'), + model_uri=GX.serverFlavor__additionalVolume, domain=None, range=Optional[Union[Union[dict, Disk], List[Union[dict, Disk]]]]) -slots.interconnectionPointIdentifier__macAddress = Slot(uri=GX.macAddress, name="interconnectionPointIdentifier__macAddress", curie=GX.curie('macAddress'), - model_uri=GX.interconnectionPointIdentifier__macAddress, domain=None, range=Optional[str], - pattern=re.compile(r'(?:[0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}')) +slots.serverFlavor__confidentialComputing = Slot(uri=GX.confidentialComputing, name="serverFlavor__confidentialComputing", curie=GX.curie('confidentialComputing'), + model_uri=GX.serverFlavor__confidentialComputing, domain=None, range=Optional[Union[dict, ConfidentialComputing]]) -slots.interconnectionPointIdentifier__ipAddress = Slot(uri=GX.ipAddress, name="interconnectionPointIdentifier__ipAddress", curie=GX.curie('ipAddress'), - model_uri=GX.interconnectionPointIdentifier__ipAddress, domain=None, range=Optional[str], - pattern=re.compile(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')) +slots.serverFlavor__hypervisor = Slot(uri=GX.hypervisor, name="serverFlavor__hypervisor", curie=GX.curie('hypervisor'), + model_uri=GX.serverFlavor__hypervisor, domain=None, range=Optional[Union[dict, Hypervisor]]) -slots.datacenterAllocation__refersTo = Slot(uri=GX.refersTo, name="datacenterAllocation__refersTo", curie=GX.curie('refersTo'), - model_uri=GX.datacenterAllocation__refersTo, domain=None, range=Union[dict, Datacenter]) +slots.serverFlavor__hardwareAssistedVirtualization = Slot(uri=GX.hardwareAssistedVirtualization, name="serverFlavor__hardwareAssistedVirtualization", curie=GX.curie('hardwareAssistedVirtualization'), + model_uri=GX.serverFlavor__hardwareAssistedVirtualization, domain=None, range=Optional[Union[bool, Bool]]) -slots.datacenterAllocation__floor = Slot(uri=GX.floor, name="datacenterAllocation__floor", curie=GX.curie('floor'), - model_uri=GX.datacenterAllocation__floor, domain=None, range=Optional[str]) +slots.serverFlavor__hwRngTypeOfFlavor = Slot(uri=GX.hwRngTypeOfFlavor, name="serverFlavor__hwRngTypeOfFlavor", curie=GX.curie('hwRngTypeOfFlavor'), + model_uri=GX.serverFlavor__hwRngTypeOfFlavor, domain=None, range=Optional[Union[str, "RNGTypes"]]) -slots.datacenterAllocation__rackNumber = Slot(uri=GX.rackNumber, name="datacenterAllocation__rackNumber", curie=GX.curie('rackNumber'), - model_uri=GX.datacenterAllocation__rackNumber, domain=None, range=Optional[str]) +slots.confidentialComputing__technology = Slot(uri=GX.technology, name="confidentialComputing__technology", curie=GX.curie('technology'), + model_uri=GX.confidentialComputing__technology, domain=None, range=str) -slots.datacenterAllocation__patchPanel = Slot(uri=GX.patchPanel, name="datacenterAllocation__patchPanel", curie=GX.curie('patchPanel'), - model_uri=GX.datacenterAllocation__patchPanel, domain=None, range=Optional[str]) +slots.confidentialComputing__attestationServiceURI = Slot(uri=GX.attestationServiceURI, name="confidentialComputing__attestationServiceURI", curie=GX.curie('attestationServiceURI'), + model_uri=GX.confidentialComputing__attestationServiceURI, domain=None, range=Optional[Union[str, URI]]) -slots.datacenterAllocation__portNumber = Slot(uri=GX.portNumber, name="datacenterAllocation__portNumber", curie=GX.curie('portNumber'), - model_uri=GX.datacenterAllocation__portNumber, domain=None, range=Optional[int]) +slots.cpuCapabilities__pCPU = Slot(uri=GX.pCPU, name="cpuCapabilities__pCPU", curie=GX.curie('pCPU'), + model_uri=GX.cpuCapabilities__pCPU, domain=None, range=Union[dict, CPU]) -slots.vLANConfiguration__vlanType = Slot(uri=GX.vlanType, name="vLANConfiguration__vlanType", curie=GX.curie('vlanType'), - model_uri=GX.vLANConfiguration__vlanType, domain=None, range=Optional[Union[str, "VlanType"]]) +slots.cpuCapabilities__vCPUs = Slot(uri=GX.vCPUs, name="cpuCapabilities__vCPUs", curie=GX.curie('vCPUs'), + model_uri=GX.cpuCapabilities__vCPUs, domain=None, range=int) -slots.vLANConfiguration__vlanTag = Slot(uri=GX.vlanTag, name="vLANConfiguration__vlanTag", curie=GX.curie('vlanTag'), - model_uri=GX.vLANConfiguration__vlanTag, domain=None, range=Optional[int]) +slots.cpuCapabilities__overProvisioningRatio = Slot(uri=GX.overProvisioningRatio, name="cpuCapabilities__overProvisioningRatio", curie=GX.curie('overProvisioningRatio'), + model_uri=GX.cpuCapabilities__overProvisioningRatio, domain=None, range=Optional[int]) -slots.vLANConfiguration__vlanEtherType = Slot(uri=GX.vlanEtherType, name="vLANConfiguration__vlanEtherType", curie=GX.curie('vlanEtherType'), - model_uri=GX.vLANConfiguration__vlanEtherType, domain=None, range=Optional[str]) +slots.memoryCapabilities__memory = Slot(uri=GX.memory, name="memoryCapabilities__memory", curie=GX.curie('memory'), + model_uri=GX.memoryCapabilities__memory, domain=None, range=Union[dict, Memory]) -slots.computeFunctionConfiguration__computeFunctionQuotas = Slot(uri=GX.computeFunctionQuotas, name="computeFunctionConfiguration__computeFunctionQuotas", curie=GX.curie('computeFunctionQuotas'), - model_uri=GX.computeFunctionConfiguration__computeFunctionQuotas, domain=None, range=Optional[Union[Union[dict, ComputeFunctionQuotas], List[Union[dict, ComputeFunctionQuotas]]]]) +slots.memoryCapabilities__overProvisioningRatio = Slot(uri=GX.overProvisioningRatio, name="memoryCapabilities__overProvisioningRatio", curie=GX.curie('overProvisioningRatio'), + model_uri=GX.memoryCapabilities__overProvisioningRatio, domain=None, range=Optional[float]) -slots.computeFunctionConfiguration__computeFunctionLibrary = Slot(uri=GX.computeFunctionLibrary, name="computeFunctionConfiguration__computeFunctionLibrary", curie=GX.curie('computeFunctionLibrary'), - model_uri=GX.computeFunctionConfiguration__computeFunctionLibrary, domain=None, range=Optional[Union[Union[dict, ComputeFunctionTemplate], List[Union[dict, ComputeFunctionTemplate]]]]) +slots.accessUsagePolicy__policyLanguage = Slot(uri=GX.policyLanguage, name="accessUsagePolicy__policyLanguage", curie=GX.curie('policyLanguage'), + model_uri=GX.accessUsagePolicy__policyLanguage, domain=None, range=Union[str, "PolicyLanguageEnum"]) -slots.computeFunctionConfiguration__computeFunctionRuntime = Slot(uri=GX.computeFunctionRuntime, name="computeFunctionConfiguration__computeFunctionRuntime", curie=GX.curie('computeFunctionRuntime'), - model_uri=GX.computeFunctionConfiguration__computeFunctionRuntime, domain=None, range=Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]]) +slots.accessUsagePolicy__policyDocument = Slot(uri=GX.policyDocument, name="accessUsagePolicy__policyDocument", curie=GX.curie('policyDocument'), + model_uri=GX.accessUsagePolicy__policyDocument, domain=None, range=str) -slots.computeFunctionConfiguration__computeFunctionSDK = Slot(uri=GX.computeFunctionSDK, name="computeFunctionConfiguration__computeFunctionSDK", curie=GX.curie('computeFunctionSDK'), - model_uri=GX.computeFunctionConfiguration__computeFunctionSDK, domain=None, range=Optional[Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]]]) +slots.vMImage__vmImageDiskFormat = Slot(uri=GX.vmImageDiskFormat, name="vMImage__vmImageDiskFormat", curie=GX.curie('vmImageDiskFormat'), + model_uri=GX.vMImage__vmImageDiskFormat, domain=None, range=Optional[Union[str, "VMDiskType"]]) -slots.computeFunctionConfiguration__computeFunctionTrigger = Slot(uri=GX.computeFunctionTrigger, name="computeFunctionConfiguration__computeFunctionTrigger", curie=GX.curie('computeFunctionTrigger'), - model_uri=GX.computeFunctionConfiguration__computeFunctionTrigger, domain=None, range=Optional[Union[Union[dict, ComputeFunctionTrigger], List[Union[dict, ComputeFunctionTrigger]]]]) +slots.vMImage__hypervisorType = Slot(uri=GX.hypervisorType, name="vMImage__hypervisorType", curie=GX.curie('hypervisorType'), + model_uri=GX.vMImage__hypervisorType, domain=None, range=Optional[Union[str, "HypervisorType"]]) -slots.computeFunctionConfiguration__computeFunctionDeploymentMethod = Slot(uri=GX.computeFunctionDeploymentMethod, name="computeFunctionConfiguration__computeFunctionDeploymentMethod", curie=GX.curie('computeFunctionDeploymentMethod'), - model_uri=GX.computeFunctionConfiguration__computeFunctionDeploymentMethod, domain=None, range=Optional[Union[Union[str, "ComputeFunctionDeploymentMethod"], List[Union[str, "ComputeFunctionDeploymentMethod"]]]]) +slots.vMImage__firmwareType = Slot(uri=GX.firmwareType, name="vMImage__firmwareType", curie=GX.curie('firmwareType'), + model_uri=GX.vMImage__firmwareType, domain=None, range=Optional[Union[str, "FirmType"]]) -slots.computeFunctionConfiguration__confidentialComputingTechnology = Slot(uri=GX.confidentialComputingTechnology, name="computeFunctionConfiguration__confidentialComputingTechnology", curie=GX.curie('confidentialComputingTechnology'), - model_uri=GX.computeFunctionConfiguration__confidentialComputingTechnology, domain=None, range=Optional[Union[dict, ConfidentialComputing]]) +slots.vMImage__hwRngTypeOfImage = Slot(uri=GX.hwRngTypeOfImage, name="vMImage__hwRngTypeOfImage", curie=GX.curie('hwRngTypeOfImage'), + model_uri=GX.vMImage__hwRngTypeOfImage, domain=None, range=Optional[Union[str, "RNGTypes"]]) -slots.computeFunctionQuotas__functionMaximumNumber = Slot(uri=GX.functionMaximumNumber, name="computeFunctionQuotas__functionMaximumNumber", curie=GX.curie('functionMaximumNumber'), - model_uri=GX.computeFunctionQuotas__functionMaximumNumber, domain=None, range=Optional[int]) +slots.vMImage__watchDogAction = Slot(uri=GX.watchDogAction, name="vMImage__watchDogAction", curie=GX.curie('watchDogAction'), + model_uri=GX.vMImage__watchDogAction, domain=None, range=Optional[Union[str, "WatchDogActions"]]) -slots.computeFunctionQuotas__functionStorageLimit = Slot(uri=GX.functionStorageLimit, name="computeFunctionQuotas__functionStorageLimit", curie=GX.curie('functionStorageLimit'), - model_uri=GX.computeFunctionQuotas__functionStorageLimit, domain=None, range=Optional[Union[dict, MemorySize]]) +slots.PointOfPresence_maintainedBy = Slot(uri=GX.maintainedBy, name="PointOfPresence_maintainedBy", curie=GX.curie('maintainedBy'), + model_uri=GX.PointOfPresence_maintainedBy, domain=PointOfPresence, range=Union[Union[str, InternetServiceProviderRegistrationNumber], List[Union[str, InternetServiceProviderRegistrationNumber]]]) -slots.computeFunctionQuotas__functionTimeLimit = Slot(uri=GX.functionTimeLimit, name="computeFunctionQuotas__functionTimeLimit", curie=GX.curie('functionTimeLimit'), - model_uri=GX.computeFunctionQuotas__functionTimeLimit, domain=None, range=Optional[Union[dict, Time]]) +slots.InternetExchangePoint_participants = Slot(uri=GX.participants, name="InternetExchangePoint_participants", curie=GX.curie('participants'), + model_uri=GX.InternetExchangePoint_participants, domain=InternetExchangePoint, range=Union[Union[str, InternetServiceProviderRegistrationNumber], List[Union[str, InternetServiceProviderRegistrationNumber]]]) -slots.computeFunctionQuotas__functionMemoryLimit = Slot(uri=GX.functionMemoryLimit, name="computeFunctionQuotas__functionMemoryLimit", curie=GX.curie('functionMemoryLimit'), - model_uri=GX.computeFunctionQuotas__functionMemoryLimit, domain=None, range=Optional[Union[dict, MemorySize]]) +slots.DataProduct_providedBy = Slot(uri=GX.providedBy, name="DataProduct_providedBy", curie=GX.curie('providedBy'), + model_uri=GX.DataProduct_providedBy, domain=DataProduct, range=Union[str, DataProducerRegistrationNumber]) -slots.computeFunctionQuotas__functionSizeLimit = Slot(uri=GX.functionSizeLimit, name="computeFunctionQuotas__functionSizeLimit", curie=GX.curie('functionSizeLimit'), - model_uri=GX.computeFunctionQuotas__functionSizeLimit, domain=None, range=Optional[Union[dict, MemorySize]]) +slots.DataProduct_termsAndConditions = Slot(uri=GX.termsAndConditions, name="DataProduct_termsAndConditions", curie=GX.curie('termsAndConditions'), + model_uri=GX.DataProduct_termsAndConditions, domain=DataProduct, range=str) -slots.computeFunctionQuotas__functionConcurrencyLimit = Slot(uri=GX.functionConcurrencyLimit, name="computeFunctionQuotas__functionConcurrencyLimit", curie=GX.curie('functionConcurrencyLimit'), - model_uri=GX.computeFunctionQuotas__functionConcurrencyLimit, domain=None, range=Optional[int]) +slots.DataProduct_licenses = Slot(uri=DCT.license, name="DataProduct_licenses", curie=DCT.curie('license'), + model_uri=GX.DataProduct_licenses, domain=DataProduct, range=Union[str, List[str]]) -slots.computeFunctionQuotas__functionRequestSizeLimit = Slot(uri=GX.functionRequestSizeLimit, name="computeFunctionQuotas__functionRequestSizeLimit", curie=GX.curie('functionRequestSizeLimit'), - model_uri=GX.computeFunctionQuotas__functionRequestSizeLimit, domain=None, range=Optional[Union[dict, MemorySize]]) +slots.DataProduct_title = Slot(uri=DCT.title, name="DataProduct_title", curie=DCT.curie('title'), + model_uri=GX.DataProduct_title, domain=DataProduct, range=str) -slots.computeFunctionQuotas__functionResponseSizeLimit = Slot(uri=GX.functionResponseSizeLimit, name="computeFunctionQuotas__functionResponseSizeLimit", curie=GX.curie('functionResponseSizeLimit'), - model_uri=GX.computeFunctionQuotas__functionResponseSizeLimit, domain=None, range=Optional[Union[dict, MemorySize]]) +slots.DataProduct_aggregationOf = Slot(uri=GX.aggregationOf, name="DataProduct_aggregationOf", curie=GX.curie('aggregationOf'), + model_uri=GX.DataProduct_aggregationOf, domain=DataProduct, range=Union[Union[dict, DataSet], List[Union[dict, DataSet]]]) -slots.computeFunctionRuntime__supportedLanguage = Slot(uri=GX.supportedLanguage, name="computeFunctionRuntime__supportedLanguage", curie=GX.curie('supportedLanguage'), - model_uri=GX.computeFunctionRuntime__supportedLanguage, domain=None, range=Union[str, "ComputeFunctionLanguage"]) +slots.DataProduct_identifier = Slot(uri=DCT.identifier, name="DataProduct_identifier", curie=DCT.curie('identifier'), + model_uri=GX.DataProduct_identifier, domain=DataProduct, range=str) -slots.computeFunctionRuntime__supportedVersion = Slot(uri=GX.supportedVersion, name="computeFunctionRuntime__supportedVersion", curie=GX.curie('supportedVersion'), - model_uri=GX.computeFunctionRuntime__supportedVersion, domain=None, range=Union[str, List[str]]) +slots.SignatureCheckType_participantRole = Slot(uri=GX.participantRole, name="SignatureCheckType_participantRole", curie=GX.curie('participantRole'), + model_uri=GX.SignatureCheckType_participantRole, domain=SignatureCheckType, range=str) -slots.computeFunctionTrigger__triggeringService = Slot(uri=GX.triggeringService, name="computeFunctionTrigger__triggeringService", curie=GX.curie('triggeringService'), - model_uri=GX.computeFunctionTrigger__triggeringService, domain=None, range=Optional[Union[dict, ServiceOffering]]) +slots.SignatureCheckType_mandatory = Slot(uri=GX.mandatory, name="SignatureCheckType_mandatory", curie=GX.curie('mandatory'), + model_uri=GX.SignatureCheckType_mandatory, domain=SignatureCheckType, range=str) -slots.computeFunctionTrigger__triggeringEvent = Slot(uri=GX.triggeringEvent, name="computeFunctionTrigger__triggeringEvent", curie=GX.curie('triggeringEvent'), - model_uri=GX.computeFunctionTrigger__triggeringEvent, domain=None, range=Optional[Union[str, List[str]]]) +slots.SignatureCheckType_legalValidity = Slot(uri=GX.legalValidity, name="SignatureCheckType_legalValidity", curie=GX.curie('legalValidity'), + model_uri=GX.SignatureCheckType_legalValidity, domain=SignatureCheckType, range=Union[bool, Bool]) -slots.computeFunctionTemplate__computeFunctionName = Slot(uri=GX.computeFunctionName, name="computeFunctionTemplate__computeFunctionName", curie=GX.curie('computeFunctionName'), - model_uri=GX.computeFunctionTemplate__computeFunctionName, domain=None, range=str) +slots.DataProductUsageContract_providedBy = Slot(uri=GX.providedBy, name="DataProductUsageContract_providedBy", curie=GX.curie('providedBy'), + model_uri=GX.DataProductUsageContract_providedBy, domain=DataProductUsageContract, range=Union[str, DataProviderRegistrationNumber]) -slots.computeFunctionTemplate__computeFunctionDescription = Slot(uri=GX.computeFunctionDescription, name="computeFunctionTemplate__computeFunctionDescription", curie=GX.curie('computeFunctionDescription'), - model_uri=GX.computeFunctionTemplate__computeFunctionDescription, domain=None, range=str) +slots.DataProductUsageContract_consumedBy = Slot(uri=GX.consumedBy, name="DataProductUsageContract_consumedBy", curie=GX.curie('consumedBy'), + model_uri=GX.DataProductUsageContract_consumedBy, domain=DataProductUsageContract, range=Union[str, DataConsumerRegistrationNumber]) -slots.computeFunctionTemplate__computeFunctionTemplateRuntime = Slot(uri=GX.computeFunctionTemplateRuntime, name="computeFunctionTemplate__computeFunctionTemplateRuntime", curie=GX.curie('computeFunctionTemplateRuntime'), - model_uri=GX.computeFunctionTemplate__computeFunctionTemplateRuntime, domain=None, range=Union[Union[dict, ComputeFunctionRuntime], List[Union[dict, ComputeFunctionRuntime]]]) +slots.DataProductUsageContract_dataProduct = Slot(uri=GX.dataProduct, name="DataProductUsageContract_dataProduct", curie=GX.curie('dataProduct'), + model_uri=GX.DataProductUsageContract_dataProduct, domain=DataProductUsageContract, range=Union[dict, "DataProduct"]) -slots.computeFunctionServiceOffering__computeFunctionConfiguration = Slot(uri=GX.computeFunctionConfiguration, name="computeFunctionServiceOffering__computeFunctionConfiguration", curie=GX.curie('computeFunctionConfiguration'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionConfiguration, domain=None, range=Union[dict, ComputeFunctionConfiguration]) +slots.DataProductUsageContract_signers = Slot(uri=GX.signers, name="DataProductUsageContract_signers", curie=GX.curie('signers'), + model_uri=GX.DataProductUsageContract_signers, domain=DataProductUsageContract, range=Union[Union[dict, SignatureCheckType], List[Union[dict, SignatureCheckType]]]) -slots.computeFunctionServiceOffering__computeFunctionDebugTools = Slot(uri=GX.computeFunctionDebugTools, name="computeFunctionServiceOffering__computeFunctionDebugTools", curie=GX.curie('computeFunctionDebugTools'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionDebugTools, domain=None, range=Optional[Union[bool, Bool]]) +slots.DataProductUsageContract_termOfUsage = Slot(uri=GX.termOfUsage, name="DataProductUsageContract_termOfUsage", curie=GX.curie('termOfUsage'), + model_uri=GX.DataProductUsageContract_termOfUsage, domain=DataProductUsageContract, range=str) -slots.computeFunctionServiceOffering__computeFunctionEditor = Slot(uri=GX.computeFunctionEditor, name="computeFunctionServiceOffering__computeFunctionEditor", curie=GX.curie('computeFunctionEditor'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionEditor, domain=None, range=Optional[Union[bool, Bool]]) +slots.DataProductUsageContract_dataUsage = Slot(uri=GX.dataUsage, name="DataProductUsageContract_dataUsage", curie=GX.curie('dataUsage'), + model_uri=GX.DataProductUsageContract_dataUsage, domain=DataProductUsageContract, range=Union[dict, DataUsage]) -slots.computeFunctionServiceOffering__computeFunctionAllowQuota = Slot(uri=GX.computeFunctionAllowQuota, name="computeFunctionServiceOffering__computeFunctionAllowQuota", curie=GX.curie('computeFunctionAllowQuota'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowQuota, domain=None, range=Optional[Union[bool, Bool]]) +slots.DataUsageAgreement_producedBy = Slot(uri=GX.producedBy, name="DataUsageAgreement_producedBy", curie=GX.curie('producedBy'), + model_uri=GX.DataUsageAgreement_producedBy, domain=DataUsageAgreement, range=Union[str, DataProducerRegistrationNumber]) -slots.computeFunctionServiceOffering__computeFunctionAllowTimeout = Slot(uri=GX.computeFunctionAllowTimeout, name="computeFunctionServiceOffering__computeFunctionAllowTimeout", curie=GX.curie('computeFunctionAllowTimeout'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowTimeout, domain=None, range=Optional[Union[bool, Bool]]) +slots.DataUsageAgreement_providedBy = Slot(uri=GX.providedBy, name="DataUsageAgreement_providedBy", curie=GX.curie('providedBy'), + model_uri=GX.DataUsageAgreement_providedBy, domain=DataUsageAgreement, range=Union[str, DataProviderRegistrationNumber]) -slots.computeFunctionServiceOffering__computeFunctionAllowVersioning = Slot(uri=GX.computeFunctionAllowVersioning, name="computeFunctionServiceOffering__computeFunctionAllowVersioning", curie=GX.curie('computeFunctionAllowVersioning'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowVersioning, domain=None, range=Optional[Union[bool, Bool]]) +slots.DataUsageAgreement_dataUsageAgreementTrustAnchor = Slot(uri=GX.dataUsageAgreementTrustAnchor, name="DataUsageAgreement_dataUsageAgreementTrustAnchor", curie=GX.curie('dataUsageAgreementTrustAnchor'), + model_uri=GX.DataUsageAgreement_dataUsageAgreementTrustAnchor, domain=DataUsageAgreement, range=str) -slots.computeFunctionServiceOffering__computeFunctionAllowAutoScaling = Slot(uri=GX.computeFunctionAllowAutoScaling, name="computeFunctionServiceOffering__computeFunctionAllowAutoScaling", curie=GX.curie('computeFunctionAllowAutoScaling'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowAutoScaling, domain=None, range=Optional[Union[bool, Bool]]) +slots.DataUsageAgreement_dataProduct = Slot(uri=GX.dataProduct, name="DataUsageAgreement_dataProduct", curie=GX.curie('dataProduct'), + model_uri=GX.DataUsageAgreement_dataProduct, domain=DataUsageAgreement, range=Union[dict, "DataProduct"]) -slots.computeFunctionServiceOffering__computeFunctionAllowFSMount = Slot(uri=GX.computeFunctionAllowFSMount, name="computeFunctionServiceOffering__computeFunctionAllowFSMount", curie=GX.curie('computeFunctionAllowFSMount'), - model_uri=GX.computeFunctionServiceOffering__computeFunctionAllowFSMount, domain=None, range=Optional[Union[bool, Bool]]) +slots.DataUsageAgreement_signers = Slot(uri=GX.signers, name="DataUsageAgreement_signers", curie=GX.curie('signers'), + model_uri=GX.DataUsageAgreement_signers, domain=DataUsageAgreement, range=Union[Union[dict, "SignatureCheckType"], List[Union[dict, "SignatureCheckType"]]]) -slots.vMImage__vmImageDiskFormat = Slot(uri=GX.vmImageDiskFormat, name="vMImage__vmImageDiskFormat", curie=GX.curie('vmImageDiskFormat'), - model_uri=GX.vMImage__vmImageDiskFormat, domain=None, range=Optional[Union[str, "VMDiskType"]]) +slots.DataSet_title = Slot(uri=DCT.title, name="DataSet_title", curie=DCT.curie('title'), + model_uri=GX.DataSet_title, domain=DataSet, range=str) -slots.vMImage__hypervisorType = Slot(uri=GX.hypervisorType, name="vMImage__hypervisorType", curie=GX.curie('hypervisorType'), - model_uri=GX.vMImage__hypervisorType, domain=None, range=Optional[Union[str, "HypervisorType"]]) +slots.DataSet_distributions = Slot(uri=DCT.distribution, name="DataSet_distributions", curie=DCT.curie('distribution'), + model_uri=GX.DataSet_distributions, domain=DataSet, range=Union[Union[dict, "Distribution"], List[Union[dict, "Distribution"]]]) -slots.vMImage__firmwareType = Slot(uri=GX.firmwareType, name="vMImage__firmwareType", curie=GX.curie('firmwareType'), - model_uri=GX.vMImage__firmwareType, domain=None, range=Optional[Union[str, "FirmType"]]) +slots.DataSet_identifier = Slot(uri=DCT.identifier, name="DataSet_identifier", curie=DCT.curie('identifier'), + model_uri=GX.DataSet_identifier, domain=DataSet, range=str) -slots.vMImage__hwRngTypeOfImage = Slot(uri=GX.hwRngTypeOfImage, name="vMImage__hwRngTypeOfImage", curie=GX.curie('hwRngTypeOfImage'), - model_uri=GX.vMImage__hwRngTypeOfImage, domain=None, range=Optional[Union[str, "RNGTypes"]]) +slots.DataSet_exposedThrough = Slot(uri=GX.exposedThrough, name="DataSet_exposedThrough", curie=GX.curie('exposedThrough'), + model_uri=GX.DataSet_exposedThrough, domain=DataSet, range=str) -slots.vMImage__watchDogAction = Slot(uri=GX.watchDogAction, name="vMImage__watchDogAction", curie=GX.curie('watchDogAction'), - model_uri=GX.vMImage__watchDogAction, domain=None, range=Optional[Union[str, "WatchDogActions"]]) +slots.Distribution_title = Slot(uri=DCT.title, name="Distribution_title", curie=DCT.curie('title'), + model_uri=GX.Distribution_title, domain=Distribution, range=str) -slots.serverFlavor__cpu = Slot(uri=GX.cpu, name="serverFlavor__cpu", curie=GX.curie('cpu'), - model_uri=GX.serverFlavor__cpu, domain=None, range=Union[dict, CPU]) +slots.Distribution_format = Slot(uri=DCT.format, name="Distribution_format", curie=DCT.curie('format'), + model_uri=GX.Distribution_format, domain=Distribution, range=str) -slots.serverFlavor__ram = Slot(uri=GX.ram, name="serverFlavor__ram", curie=GX.curie('ram'), - model_uri=GX.serverFlavor__ram, domain=None, range=Union[dict, Memory]) +slots.Datacenter_aggregationOfResources = Slot(uri=GX.aggregationOfResources, name="Datacenter_aggregationOfResources", curie=GX.curie('aggregationOfResources'), + model_uri=GX.Datacenter_aggregationOfResources, domain=Datacenter, range=Union[str, List[str]]) -slots.serverFlavor__gpu = Slot(uri=GX.gpu, name="serverFlavor__gpu", curie=GX.curie('gpu'), - model_uri=GX.serverFlavor__gpu, domain=None, range=Optional[Union[dict, GPU]]) +slots.BandWidth_metric = Slot(uri=GX.metric, name="BandWidth_metric", curie=GX.curie('metric'), + model_uri=GX.BandWidth_metric, domain=BandWidth, range=Union[dict, "DataRate"]) -slots.serverFlavor__network = Slot(uri=GX.network, name="serverFlavor__network", curie=GX.curie('network'), - model_uri=GX.serverFlavor__network, domain=None, range=Optional[str]) +slots.RoundTripTime_metric = Slot(uri=GX.metric, name="RoundTripTime_metric", curie=GX.curie('metric'), + model_uri=GX.RoundTripTime_metric, domain=RoundTripTime, range=Union[dict, "Time"]) -slots.serverFlavor__bootVolume = Slot(uri=GX.bootVolume, name="serverFlavor__bootVolume", curie=GX.curie('bootVolume'), - model_uri=GX.serverFlavor__bootVolume, domain=None, range=Union[dict, Disk]) +slots.Availability_metric = Slot(uri=GX.metric, name="Availability_metric", curie=GX.curie('metric'), + model_uri=GX.Availability_metric, domain=Availability, range=Union[dict, "Time"]) -slots.serverFlavor__additionalVolume = Slot(uri=GX.additionalVolume, name="serverFlavor__additionalVolume", curie=GX.curie('additionalVolume'), - model_uri=GX.serverFlavor__additionalVolume, domain=None, range=Optional[Union[Union[dict, Disk], List[Union[dict, Disk]]]]) +slots.PacketLoss_metric = Slot(uri=GX.metric, name="PacketLoss_metric", curie=GX.curie('metric'), + model_uri=GX.PacketLoss_metric, domain=PacketLoss, range=Union[dict, "FloatPercentage"]) -slots.serverFlavor__confidentialComputing = Slot(uri=GX.confidentialComputing, name="serverFlavor__confidentialComputing", curie=GX.curie('confidentialComputing'), - model_uri=GX.serverFlavor__confidentialComputing, domain=None, range=Optional[Union[dict, ConfidentialComputing]]) +slots.Jitter_metric = Slot(uri=GX.metric, name="Jitter_metric", curie=GX.curie('metric'), + model_uri=GX.Jitter_metric, domain=Jitter, range=Union[dict, "Time"]) -slots.serverFlavor__hypervisor = Slot(uri=GX.hypervisor, name="serverFlavor__hypervisor", curie=GX.curie('hypervisor'), - model_uri=GX.serverFlavor__hypervisor, domain=None, range=Optional[Union[dict, Hypervisor]]) +slots.Latency_metric = Slot(uri=GX.metric, name="Latency_metric", curie=GX.curie('metric'), + model_uri=GX.Latency_metric, domain=Latency, range=Union[dict, "Time"]) -slots.serverFlavor__hardwareAssistedVirtualization = Slot(uri=GX.hardwareAssistedVirtualization, name="serverFlavor__hardwareAssistedVirtualization", curie=GX.curie('hardwareAssistedVirtualization'), - model_uri=GX.serverFlavor__hardwareAssistedVirtualization, domain=None, range=Optional[Union[bool, Bool]]) +slots.TargetPercentile_metric = Slot(uri=GX.metric, name="TargetPercentile_metric", curie=GX.curie('metric'), + model_uri=GX.TargetPercentile_metric, domain=TargetPercentile, range=Union[dict, "FloatPercentage"]) -slots.serverFlavor__hwRngTypeOfFlavor = Slot(uri=GX.hwRngTypeOfFlavor, name="serverFlavor__hwRngTypeOfFlavor", curie=GX.curie('hwRngTypeOfFlavor'), - model_uri=GX.serverFlavor__hwRngTypeOfFlavor, domain=None, range=Optional[Union[str, "RNGTypes"]]) +slots.Throughput_metric = Slot(uri=GX.metric, name="Throughput_metric", curie=GX.curie('metric'), + model_uri=GX.Throughput_metric, domain=Throughput, range=Union[dict, "DataRate"]) -slots.confidentialComputing__technology = Slot(uri=GX.technology, name="confidentialComputing__technology", curie=GX.curie('technology'), - model_uri=GX.confidentialComputing__technology, domain=None, range=str) +slots.IOPS_metric = Slot(uri=GX.metric, name="IOPS_metric", curie=GX.curie('metric'), + model_uri=GX.IOPS_metric, domain=IOPS, range=Union[dict, "DataRate"]) -slots.confidentialComputing__attestationServiceURI = Slot(uri=GX.attestationServiceURI, name="confidentialComputing__attestationServiceURI", curie=GX.curie('attestationServiceURI'), - model_uri=GX.confidentialComputing__attestationServiceURI, domain=None, range=Optional[Union[str, URI]]) +slots.Region_aggregationOfResources = Slot(uri=GX.aggregationOfResources, name="Region_aggregationOfResources", curie=GX.curie('aggregationOfResources'), + model_uri=GX.Region_aggregationOfResources, domain=Region, range=Union[str, List[str]]) \ No newline at end of file diff --git a/generator/common/json_ld.py b/generator/common/json_ld.py index 920cb29..d56a385 100644 --- a/generator/common/json_ld.py +++ b/generator/common/json_ld.py @@ -12,7 +12,7 @@ from linkml_runtime.utils.metamodelcore import URI from linkml_runtime.utils.yamlutils import YAMLRoot -from generator.common.gx_schema import GX, QUDT, SCHEMA, VCARD, slots +from generator.common.gx_schema import GX, QUDT, HTTPS_SCHEMA, HTTPS_VCARD, slots class JsonLdObject: @@ -46,8 +46,8 @@ def get_json_ld_context() -> dict: "@context": { GX.prefix: GX, QUDT.prefix: QUDT, - SCHEMA.prefix: SCHEMA, - VCARD.prefix: VCARD, + HTTPS_SCHEMA.prefix: HTTPS_SCHEMA, + HTTPS_VCARD.prefix: HTTPS_VCARD, "xsd": "http://www.w3.org/2001/XMLSchema#", "ex": "https://example.com/", } diff --git a/generator/discovery/openstack/openstack_discovery.py b/generator/discovery/openstack/openstack_discovery.py index 7520f7e..4e7e9c8 100644 --- a/generator/discovery/openstack/openstack_discovery.py +++ b/generator/discovery/openstack/openstack_discovery.py @@ -42,16 +42,15 @@ def discover(self) -> VirtualMachineServiceOffering: flavors = ServerFlavorDiscovery(self.conn, self.config).discover() vol_types = VolumeTypeDiscovery(self.conn, self.config).discover() - vm_offering = self._create_vm_offering(images,flavors) - storage_offering = self._create_storage_offering(vol_types) + mand_props = self._get_mandatorty_service_propteries() + vm_offering = self._create_vm_offering(images,flavors, mand_props) + storage_offering = self._create_storage_offering(vol_types, mand_props) vm_offering.dependsOn(storage_offering) - return vm_offering - def _create_vm_offering(self, images: List[GX_Image], flavors: List[GX_Flavor]) -> VirtualMachineServiceOffering: - # Create Virtual Service Offering object + def _get_mandatorty_service_propteries(self) -> dict: data_export_account = DataAccountExport( requestType=self.config.get_value( [ @@ -98,17 +97,23 @@ def _create_vm_offering(self, images: List[GX_Image], flavors: List[GX_Flavor]) "Service offerings terms and conditions MUST not be empty. Please check config.yaml. There MUST be at least one entry." + const.CONFIG_IAAS + "." + const.CONFIG_IAAS_T_AND_C ) - - return VirtualMachineServiceOffering( - providedBy=self.config.get_value([const.CONFIG_CSP, const.CONFIG_DID]), - dataAccountExport=data_export_account, - servicePolicy=self.config.get_value( + return { + 'dataAccountExport': data_export_account, + 'servicePolicy': self.config.get_value( [const.CONFIG_IAAS, const.CONFIG_IAAS_SERVICE_POLICY] ), - serviceOfferingTermsAndConditions=service_tac, + 'serviceOfferingTermsAndConditions': service_tac, + 'providedBy': self.config.get_value([const.CONFIG_CSP, const.CONFIG_DID])} + + + def _create_vm_offering(self, images: List[GX_Image], flavors: List[GX_Flavor], mand_prop: dict) -> VirtualMachineServiceOffering: + # Create Virtual Service Offering object + + return VirtualMachineServiceOffering( + mand_prop, codeArtifact=images, instantiationReq=flavors, ) - def _create_storage_offering(self, vol_types: List[GX_Type]) -> BlockStorageServiceOffering: - pass \ No newline at end of file + def _create_storage_offering(self, vol_types: List[GX_Type], mand_prop: dict) -> BlockStorageServiceOffering: + bso = BlockStorageServiceOffering(mand_prop, storageConfiguration=vol_types) \ No newline at end of file diff --git a/generator/discovery/openstack/volume_type_discovery.py b/generator/discovery/openstack/volume_type_discovery.py index f832c5c..c3b59d5 100644 --- a/generator/discovery/openstack/volume_type_discovery.py +++ b/generator/discovery/openstack/volume_type_discovery.py @@ -1,4 +1,5 @@ from datetime import datetime +from distutils.command.config import config from typing import List, Union import re @@ -31,30 +32,30 @@ def discover(self) -> List[GX_Type]: """ types = [] for t in self.conn.list_volume_types(): - if t.is_public: - types.append(self._convert_to_gx_image(t)) + types.append(self._convert_to_gx_type(t)) return types def _convert_to_gx_type(self, v_type: OS_Type) -> GX_Type: gx_vol_type = GX_Type(name=v_type.name, description=v_type.description) if self._is_volume_encrypted(v_type.description): - gx_vol_type.storageEncryption = Encryption() - + gx_vol_type.storageEncryption = { + 'id': self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-encryption-" + v_type.id + } + if self._is_volume_replicated(v_type.description): + gx_vol_type.storageRedundancyMechanism = [{ + 'id': self.conf.get_value( + [const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-replication-" + v_type.id + }] return gx_vol_type - def _is_volume_encrypted(self, vol_name) -> bool: - match = re.search(r'\[scs:\s*.*?encrypted.*?\]', vol_name) - if match: - return True - else: + def _is_volume_encrypted(self, vol_desc) -> bool: + if not vol_desc: return False + return True if re.search(r'\[scs:.*\s+encrypted[, \]].*', vol_desc) else False - def _is_volume_replicated(self, vol_name) -> bool: - match = re.search(r'\[scs:\s*.*?replicated.*?\]', vol_name) - if match: - return True - else: + def _is_volume_replicated(self, vol_desc) -> bool: + if not vol_desc: return False - + return True if re.search(r'\[scs:.*\s+replicated[, \]].*', vol_desc) else False diff --git a/tests/common.py b/tests/common.py index 9bbcff7..45160ef 100644 --- a/tests/common.py +++ b/tests/common.py @@ -27,12 +27,16 @@ def get_absolute_path(relative_path: str) -> str: def get_config() -> Config: - with open(get_absolute_path("config/config.yaml.template"), "r") as config_file: + with open(get_absolute_path("config/config.yaml"), "r") as config_file: return Config(yaml.safe_load(config_file)) class OpenstackTestcase(unittest.TestCase): + def get_config(self): + with open(get_absolute_path("config/config.yaml.template"), "r") as config_file: + return Config(yaml.safe_load(config_file)) + def assert_gaia_x_entity(self, ob_1: GaiaXEntity, ob_2: GaiaXEntity): self.assertEqual(ob_1.name, ob_2.name, "GaiaXEntity.name") self.assertEqual(ob_1.description, ob_2.description, "GaiaXEntity.description") diff --git a/tests/test_cli.py b/tests/test_cli.py index ba726cf..23a33ec 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -11,7 +11,7 @@ from generator import cli from generator.common import config from generator.common.gx_schema import (DataAccountExport, TermsAndConditions, - VirtualMachineServiceOffering) + VirtualMachineServiceOffering, VMImage) from tests.common import MockConnection, get_absolute_path @@ -34,8 +34,8 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx dataAccountExport=DataAccountExport( requestType="API", accessType="digital", - formatType="plain"), - codeArtifact=["foo"], + formatType="text/plain"), + codeArtifact=[VMImage(copyrightOwnedBy='foo', resourcePolicy='bar', license='APL-1.0')], instantiationReq=["bar"]) load_jwk.return_value = JWK.from_pem(rsa.generate_private_key( public_exponent=65537, diff --git a/tests/test_json_ld.py b/tests/test_json_ld.py index 0562224..8db7eba 100644 --- a/tests/test_json_ld.py +++ b/tests/test_json_ld.py @@ -23,10 +23,10 @@ def test_get_json_ld_context(self): { "@context": { "ex": "https://example.com/", - "gx": Namespace("https://w3id.org/gaia-x/deployment#"), + "gx": Namespace("https://w3id.org/gaia-x/development#"), "qudt": Namespace("http://qudt.org/vocab/"), - "schema": Namespace("http://schema.org/"), - "vcard": Namespace("http://www.w3.org/2006/vcard/ns#"), + "https_schema": Namespace("https://schema.org/"), + "https_vcard": Namespace("https://www.w3.org/2006/vcard/ns#"), "xsd": "http://www.w3.org/2001/XMLSchema#", } }, @@ -36,41 +36,41 @@ def test_get_json_ld_context(self): def test_to_json_ld(self): addr = Address(countryCode="DE") self.assertEqual( - {"type": "vcard:Address", "gx:countryCode": "DE"}, to_json_ld(addr) + {"type": "gx:Address", "gx:countryCode": "DE"}, to_json_ld(addr) ) self.assertEqual( - {"id": "ex:foo", "type": "vcard:Address", "gx:countryCode": "DE"}, + {"id": "ex:foo", "type": "gx:Address", "gx:countryCode": "DE"}, to_json_ld(JsonLdObject(gx_object=addr, gx_id="foo")), ) # test attribute is emtpy for value in [None, []]: addr.countryCode = value - self.assertEqual({"type": "vcard:Address"}, to_json_ld(addr)) + self.assertEqual({"type": "gx:Address"}, to_json_ld(addr)) # test attribute is an empty list addr.countryCode = ["DE", "FR"] self.assertEqual( - {"type": "vcard:Address", "gx:countryCode": ["DE", "FR"]}, to_json_ld(addr) + {"type": "gx:Address", "gx:countryCode": ["DE", "FR"]}, to_json_ld(addr) ) # test attribute is a PermissibleValue addr.countryCode = CountryNameAlpha2.DE self.assertEqual( - {"type": "vcard:Address", "gx:countryCode": "DE"}, to_json_ld(addr) + {"type": "gx:Address", "gx:countryCode": "DE"}, to_json_ld(addr) ) # test attribute is EnumDefinitionImpl addr.countryCode = CountryNameAlpha2("DE") self.assertEqual( - {"type": "vcard:Address", "gx:countryCode": "DE"}, to_json_ld(addr) + {"type": "gx:Address", "gx:countryCode": "DE"}, to_json_ld(addr) ) # test attribute is date and datetime addr.countryCode = datetime.date(2014, 5, 12) self.assertEqual( { - "type": "vcard:Address", + "type": "gx:Address", "gx:countryCode": {"type": "xsd:date", "@value": "2014-05-12"}, }, to_json_ld(addr), @@ -78,7 +78,7 @@ def test_to_json_ld(self): addr.countryCode = datetime.datetime(2014, 5, 12, 18, 50, 32) self.assertEqual( { - "type": "vcard:Address", + "type": "gx:Address", "gx:countryCode": { "type": "xsd:dateTime", "@value": "2014-05-12T18:50:32", @@ -91,7 +91,7 @@ def test_to_json_ld(self): addr.countryCode = 1.5 self.assertEqual( { - "type": "vcard:Address", + "type": "gx:Address", "gx:countryCode": {"type": "xsd:float", "@value": 1.5}, }, to_json_ld(addr), @@ -99,7 +99,7 @@ def test_to_json_ld(self): addr.countryCode = URI("https::example.com") self.assertEqual( { - "type": "vcard:Address", + "type": "gx:Address", "gx:countryCode": { "type": "xsd:anyURI", "@value": "https::example.com", @@ -110,7 +110,7 @@ def test_to_json_ld(self): addr.countryCode = False self.assertEqual( { - "type": "vcard:Address", + "type": "gx:Address", "gx:countryCode": {"type": "xsd:boolean", "@value": False}, }, to_json_ld(addr), diff --git a/tests/test_server_flavor_discovery.py b/tests/test_server_flavor_discovery.py index a666424..cb66bf3 100644 --- a/tests/test_server_flavor_discovery.py +++ b/tests/test_server_flavor_discovery.py @@ -21,9 +21,9 @@ class VMServerFlavorDiscoveryTestcase(OpenstackTestcase): def setUp(self): + self.conf = self.get_config() self.discovery = ServerFlavorDiscovery( - conn=MockConnection(flavors=[OS_FLAVOR_1, OS_FLAVOR_2]), conf=get_config() - ) + conn=MockConnection(flavors=[OS_FLAVOR_1, OS_FLAVOR_2]), conf=self.conf) def test_get_cpu(self): self.assertEqual( diff --git a/tests/test_volume_types_discovery.py b/tests/test_volume_types_discovery.py index 6590d88..19856a8 100644 --- a/tests/test_volume_types_discovery.py +++ b/tests/test_volume_types_discovery.py @@ -1,5 +1,6 @@ import unittest +from jsonasobj import JsonObj from openstack.compute.v2.flavor import Flavor as OS_Flavor from openstack.block_storage.v3.type import Type as OS_TYPE from openstack.block_storage.v3.type import TypeEncryption @@ -16,22 +17,56 @@ from generator.vendor.flavor_names import parser_v3 from tests.common import MockConnection, OpenstackTestcase, get_config -OS_TYPE_1 = OS_TYPE(id="type_1", name="foo",) +OS_TYPE_1 = OS_TYPE(id="type_1", name="default",) OS_TYPE_2 = OS_TYPE( - id="type_2", name="[scs: encrypted] bar",) + id="type_2", name="encrypted", description="[scs: encrypted]",) +OS_TYPE_3 = OS_TYPE( + id="type_3", name="replicated", description="[scs: replicated]",) +OS_TYPE_4 = OS_TYPE( + id="type_4", name="replicated and encrypted", description="[scs: encrypted, replicated] bar",) +OS_TYPE_5 = OS_TYPE( + id="type_5", name="replicated", description="[scs: encrypted1, replicated] foo",) +OS_TYPE_6 = OS_TYPE( + id="type_6", name="encrypted", description="[scs: encrypted, replicated1] bar",) class VolumeTypeDiscoveryTestcase(OpenstackTestcase): def setUp(self): + self.conf = self.get_config() self.discovery = VolumeTypeDiscovery( - conn=MockConnection(types=[OS_TYPE_1, OS_TYPE_2]), conf=get_config() + conn=MockConnection(types=[OS_TYPE_1, + OS_TYPE_2, + OS_TYPE_3, + OS_TYPE_4, + OS_TYPE_5, + OS_TYPE_6]), conf=self.conf ) - def test_is_volume_encrypted(self): - self.assertFalse(self.discovery._is_volume_encrypted("foo")) - self.assertTrue(self.discovery._is_volume_encrypted("[scs: encrypted] bar")) - self.assertTrue(self.discovery._is_volume_encrypted("[scs: encrypted, replicated] bar")) - self.assertFalse(self.discovery._is_volume_encrypted("foo [scs:] bar")) + def test_discover(self): + actual_gax_vol_types = self.discovery.discover() + self.assertIsNone(actual_gax_vol_types[0].storageEncryption) + self.assertEqual(self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-encryption-type_2", + actual_gax_vol_types[1].storageEncryption['id']) + self.assertIsNone(actual_gax_vol_types[2].storageEncryption) + self.assertEqual(self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-encryption-type_4", + actual_gax_vol_types[3].storageEncryption['id']) + self.assertIsNone(actual_gax_vol_types[4].storageEncryption) + self.assertEqual( + self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-encryption-type_6", + actual_gax_vol_types[5].storageEncryption['id']) + + self.assertIsNone(actual_gax_vol_types[0].storageRedundancyMechanism) + self.assertIsNone(actual_gax_vol_types[1].storageRedundancyMechanism) + self.assertEqual(self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-replication-type_3", + actual_gax_vol_types[2].storageRedundancyMechanism[0]['id']) + self.assertEqual( + self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-replication-type_4", + actual_gax_vol_types[3].storageRedundancyMechanism[0]['id']) + self.assertEqual( + self.conf.get_value([const.CONFIG_CRED, const.CONFIG_CRED_BASE_CRED_URL]) + "/storage-replication-type_5", + actual_gax_vol_types[4].storageRedundancyMechanism[0]['id']) + self.assertIsNone(actual_gax_vol_types[5].storageRedundancyMechanism) + if __name__ == "__main__": unittest.main() From 45d8e01fe0d2d0f1045f308142e9394e0fe7c097 Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 29 Oct 2024 15:52:21 +0100 Subject: [PATCH 19/20] Fix unit tests Signed-off-by: Anja Strunk --- config/config.yaml.template | 2 +- generator/common/gx_schema.py | 2 +- .../openstack/openstack_discovery.py | 13 +- .../openstack/server_flavor_discovery.py | 43 +++-- .../openstack/vm_images_discovery.py | 2 +- tests/common.py | 33 ++-- tests/test_openstack_discovery.py | 39 +++-- tests/test_server_flavor_discovery.py | 165 ++++++++++-------- tests/test_vm_image_discovery.py | 7 +- 9 files changed, 173 insertions(+), 133 deletions(-) diff --git a/config/config.yaml.template b/config/config.yaml.template index 492e863..17c01f2 100644 --- a/config/config.yaml.template +++ b/config/config.yaml.template @@ -44,7 +44,7 @@ IaaS: # allowed values are: digital, physical access-type: digital # Allowed values are MIME types - format-type: "plain" + format-type: "text/plain" # Endpoints of Gaia-X Digital Clearing House GXDCH: diff --git a/generator/common/gx_schema.py b/generator/common/gx_schema.py index 4a15ccb..6d2a4fd 100644 --- a/generator/common/gx_schema.py +++ b/generator/common/gx_schema.py @@ -5380,7 +5380,7 @@ class VMImage(Image): vmImageDiskFormat: Optional[Union[str, "VMDiskType"]] = "RAW" hypervisorType: Optional[Union[str, "HypervisorType"]] = "other" firmwareType: Optional[Union[str, "FirmType"]] = "other" - hwRngTypeOfImage: Optional[Union[str, "RNGTypes"]] = None + hwRngTypeOfImage: Optional[Union[str, "RNGTypes"]] = "None" watchDogAction: Optional[Union[str, "WatchDogActions"]] = "disabled" def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): diff --git a/generator/discovery/openstack/openstack_discovery.py b/generator/discovery/openstack/openstack_discovery.py index 4e7e9c8..fc4b6f7 100644 --- a/generator/discovery/openstack/openstack_discovery.py +++ b/generator/discovery/openstack/openstack_discovery.py @@ -12,7 +12,8 @@ from generator.common import const from generator.common.config import Config from generator.common.gx_schema import (DataAccountExport, TermsAndConditions, - VirtualMachineServiceOffering, BlockStorageServiceOffering) + VirtualMachineServiceOffering, BlockStorageServiceOffering, + StorageConfiguration) from generator.common.gx_schema import VMImage as GX_Image from generator.common.gx_schema import ServerFlavor as GX_Flavor from generator.common.gx_schema import BlockStorageConfiguration as GX_Type @@ -108,12 +109,14 @@ def _get_mandatorty_service_propteries(self) -> dict: def _create_vm_offering(self, images: List[GX_Image], flavors: List[GX_Flavor], mand_prop: dict) -> VirtualMachineServiceOffering: # Create Virtual Service Offering object - return VirtualMachineServiceOffering( - mand_prop, codeArtifact=images, instantiationReq=flavors, + **mand_prop ) - def _create_storage_offering(self, vol_types: List[GX_Type], mand_prop: dict) -> BlockStorageServiceOffering: - bso = BlockStorageServiceOffering(mand_prop, storageConfiguration=vol_types) \ No newline at end of file + def _create_storage_offering(self, vol_types: List[GX_Type], mand_prop: dict) -> BlockStorageServiceOffering: + return BlockStorageServiceOffering( + storageConfiguration=[StorageConfiguration()], + **mand_prop + ) diff --git a/generator/discovery/openstack/server_flavor_discovery.py b/generator/discovery/openstack/server_flavor_discovery.py index 64639de..3f6a85a 100644 --- a/generator/discovery/openstack/server_flavor_discovery.py +++ b/generator/discovery/openstack/server_flavor_discovery.py @@ -8,10 +8,9 @@ from generator.common import const from generator.common.config import Config -from generator.common.gx_schema import CPU from generator.common.gx_schema import Architectures as CpuArch -from generator.common.gx_schema import (Disk, DiskType, Frequency, Hypervisor, - HypervisorType, Memory, MemorySize) +from generator.common.gx_schema import (CpuCapabilities, CPU, Disk, DiskType, Frequency, Hypervisor, + HypervisorType, Memory, MemoryCapabilities, MemorySize) from generator.common.gx_schema import ServerFlavor as GX_Flavor from generator.vendor.flavor_names import Flavorname, parser_v3 @@ -94,8 +93,8 @@ def _convert_to_gx(self, os_flavor: OS_Flavor) -> GX_Flavor: disks = self._get_disks(os_flavor, flavorname) gx_flavor = GX_Flavor( name=os_flavor.name, - cpu=self._get_cpu(os_flavor, flavorname), - ram=self._get_ram(os_flavor, flavorname), + cpu=self._get_cpu_cap(os_flavor, flavorname), + memory=self._get_ram_cap(os_flavor, flavorname), bootVolume=disks[0], ) @@ -108,7 +107,7 @@ def _convert_to_gx(self, os_flavor: OS_Flavor) -> GX_Flavor: return gx_flavor - def _get_cpu(self, os_flavor: OS_Flavor, flavorname: Optional[Flavorname]) -> CPU: + def _get_cpu_cap(self, os_flavor: OS_Flavor, flavorname: Optional[Flavorname]) -> CpuCapabilities: """ Return Gaia-X compliance CPU specification of given OpenStack flavor. @param os_flavor: OpenStack flavor @@ -116,22 +115,22 @@ def _get_cpu(self, os_flavor: OS_Flavor, flavorname: Optional[Flavorname]) -> CP @return: Gaia-X compliant CPU definition @rtype CPU """ - cpu = CPU(cpuArchitecture=CpuArch.Other, numberOfCores=os_flavor.vcpus) + pCpu = CPU(cpuArchitecture=CpuArch.Other) + cpuCap = CpuCapabilities(pCPU=pCpu, vCPUs=os_flavor.vcpus, overProvisioningRatio = 1) if flavorname: - cpu.smtEnabled = ( + pCpu.smtEnabled = ( flavorname.cpuram.cputype != "C" ) # FIXME this is unclear to me, see #85 - cpu.defaultOversubscriptionRatio = 1 if flavorname.cpuram.cputype == "V": - cpu.defaultOversubscriptionRatio = 5 + cpuCap.overProvisioningRatio = 5 elif flavorname.cpuram.cputype == "L": - cpu.defaultOversubscriptionRatio = 16 - return cpu + cpuCap.overProvisioningRatio = 16 + return cpuCap - def _get_ram( + def _get_ram_cap( self, os_flavor: OS_Flavor, flavorname: Optional[Flavorname] - ) -> Memory: + ) -> MemoryCapabilities: """ Return Gaia-X RAM definition specified in given OpenStack flavor. @param os_flavor: OpenStack Flavor @@ -140,12 +139,12 @@ def _get_ram( @rtype Memory """ size = MemorySize(value=float(os_flavor.ram), unit=const.UNIT_MB) - mem = Memory(memorySize=size) + memCap = MemoryCapabilities(memory=Memory(memorySize=size), overProvisioningRatio=1) if flavorname: - mem.eccEnabled = not flavorname.cpuram.raminsecure + memCap.memory.eccEnabled = not flavorname.cpuram.raminsecure if flavorname.cpuram.ramoversubscribed: - mem.defaultOversubscriptionRatio = 2 - return mem + memCap.overProvisioningRatio = 2 + return memCap def _get_disks( self, os_flavor: OS_Flavor, flavorname: Optional[Flavorname] @@ -210,16 +209,16 @@ def _parse_optional_flavor_properties( gx_flavor.hardwareAssistedVirtualization = True if flavorname.cpubrand: arch, vendor, gens = CPUVENDOR_LOOKUP[flavorname.cpubrand.cpuvendor] - gx_flavor.cpu.cpuArchitecture = CpuArch(arch) + gx_flavor.cpu.pCPU.cpuArchitecture = CpuArch(arch) if vendor is not None: - gx_flavor.cpu.vendor = vendor + gx_flavor.cpu.pCPU.vendor = vendor idx = flavorname.cpubrand.cpugen if idx is not None and idx < len(gens): - gx_flavor.cpu.generation = gens[idx] + gx_flavor.cpu.pCPU.generation = gens[idx] # parse frequency if flavorname.cpubrand.perf: freq = 0.5 * len(flavorname.cpubrand.perf) + 2.25 - gx_flavor.cpu.baseFrequency = Frequency(value=freq, unit=const.UNIT_GHZ) + gx_flavor.cpu.pCPU.baseFrequency = Frequency(value=freq, unit=const.UNIT_GHZ) def _add_description(self, os_flavor: OS_Flavor, gx_flavor: GX_Flavor) -> None: """ diff --git a/generator/discovery/openstack/vm_images_discovery.py b/generator/discovery/openstack/vm_images_discovery.py index 960a9b9..f7a47c5 100644 --- a/generator/discovery/openstack/vm_images_discovery.py +++ b/generator/discovery/openstack/vm_images_discovery.py @@ -147,7 +147,7 @@ def _convert_to_gx_image(self, os_image: OS_Image) -> GX_Image: gx_image.vPMU = self._get_hw_pmu(os_image) gx_image.cpuReq = self._get_cpu_req(os_image) gx_image.multiQueues = self._get_multiqueue_enabled(os_image) - gx_image.checksum = self._get_checksum(os_image) + gx_image.checkSum = self._get_checksum(os_image) gx_image.hwRngTypeOfImage = self._get_rng_model(os_image) gx_image.videoRamSize = self._get_video_ram_size(os_image) gx_image.file_size = self._get_file_size(os_image) diff --git a/tests/common.py b/tests/common.py index 45160ef..7a55d13 100644 --- a/tests/common.py +++ b/tests/common.py @@ -8,10 +8,10 @@ from openstack.block_storage.v3.type import Type as OS_Type from generator.common.config import Config -from generator.common.gx_schema import (CPU, GPU, CheckSum, CodeArtifact, +from generator.common.gx_schema import (CPU, CpuCapabilities, GPU, CheckSum, CodeArtifact, Device, Disk, Encryption, GaiaXEntity, Hypervisor, Image, - InstantiationRequirement, Memory, + InstantiationRequirement, Memory, MemoryCapabilities, OperatingSystem, Resource, ServerFlavor, Signature, SoftwareResource, VirtualResource, @@ -27,16 +27,12 @@ def get_absolute_path(relative_path: str) -> str: def get_config() -> Config: - with open(get_absolute_path("config/config.yaml"), "r") as config_file: + with open(get_absolute_path("config/config.yaml.template"), "r") as config_file: return Config(yaml.safe_load(config_file)) class OpenstackTestcase(unittest.TestCase): - def get_config(self): - with open(get_absolute_path("config/config.yaml.template"), "r") as config_file: - return Config(yaml.safe_load(config_file)) - def assert_gaia_x_entity(self, ob_1: GaiaXEntity, ob_2: GaiaXEntity): self.assertEqual(ob_1.name, ob_2.name, "GaiaXEntity.name") self.assertEqual(ob_1.description, ob_2.description, "GaiaXEntity.description") @@ -63,8 +59,8 @@ def assert_virtual_resource(self, ob_1: VirtualResource, ob_2: VirtualResource): def assert_software_resource(self, ob_1: SoftwareResource, ob_2: SoftwareResource): self.assert_virtual_resource(ob_1, ob_2) - if ob_1.checksum: - self.assert_checksum(ob_1.checksum, ob_2.checksum) + if ob_1.checkSum: + self.assert_checksum(ob_1.checkSum, ob_2.checkSum) if ob_1.signature: self.assert_signature(ob_1.signature, ob_2.signature) self.assertEqual(ob_1.version, ob_2.version, "SoftwareResource.version") @@ -200,8 +196,8 @@ def assert_image(self, ob_1: Image, ob_2: Image): ) if ob_1.encryption: self.assert_encryption(ob_1.encryption, ob_2.encryption) - if ob_1.checksum: - self.assert_checksum(ob_1.checksum, ob_2.checksum) + if ob_1.checkSum: + self.assert_checksum(ob_1.checkSum, ob_2.checkSum) self.assertEqual(ob_1.secureBoot, ob_2.secureBoot, "Image.secureBoot") self.assertEqual(ob_1.vPMU, ob_2.vPMU, "Image.vPMU") @@ -252,10 +248,19 @@ def assert_instantiation_requirement( ): self.assert_gaia_x_entity(ob_1, ob_2) + def assert_cpu_cap(self, ob_1: CpuCapabilities, ob_2: CpuCapabilities): + self.assert_cpu(ob_1.pCPU, ob_2.pCPU) + self.assertEqual(ob_1.overProvisioningRatio, ob_2.overProvisioningRatio) + self.assertEqual(ob_1.vCPUs, ob_2.vCPUs) + + def assert_memory_cap(self, ob_1: MemoryCapabilities, ob_2: MemoryCapabilities): + self.assert_mem(ob_1.memory, ob_2.memory) + self.assertEqual(ob_1.overProvisioningRatio, ob_2.overProvisioningRatio) + def assert_flavor(self, ob_1: ServerFlavor, ob_2: ServerFlavor): - # self.check_installation_requirement(ob_1, ob_2) - self.assert_cpu(ob_1.cpu, ob_2.cpu) - self.assert_mem(ob_1.ram, ob_2.ram) + self.assert_instantiation_requirement(ob_1, ob_2) + self.assert_cpu_cap(ob_1.cpu, ob_2.cpu) + self.assert_memory_cap(ob_1.memory, ob_2.memory) self.assert_gpu(ob_1.gpu, ob_2.gpu) self.assert_disk(ob_1.bootVolume, ob_2.bootVolume) self.assertEqual( diff --git a/tests/test_openstack_discovery.py b/tests/test_openstack_discovery.py index 7bc403d..e498f61 100644 --- a/tests/test_openstack_discovery.py +++ b/tests/test_openstack_discovery.py @@ -2,11 +2,11 @@ from unittest.mock import MagicMock, patch from generator.common import const -from generator.common.gx_schema import (CPU, Architectures, Disk, Memory, - MemorySize, ServerFlavor, VMImage) +from generator.common.gx_schema import (CpuCapabilities, CPU, Architectures, Disk, MemoryCapabilities, Memory, + MemorySize, ServerFlavor, VMImage, StorageConfiguration) from generator.discovery.openstack.openstack_discovery import \ OpenstackDiscovery -from tests.common import MockConnection, get_config +from tests.common import MockConnection, OpenstackTestcase, get_config GX_IMAGE_1 = VMImage( copyrightOwnedBy=["Fedora-Project"], @@ -15,33 +15,41 @@ ) GX_FLAVOR_1 = ServerFlavor( - cpu=CPU( - cpuArchitecture=Architectures.Other, - defaultOversubscriptionRatio=1, - numberOfCores=4, - ), - ram=Memory( - memorySize=MemorySize(value=10, unit=const.UNIT_MB)), - bootVolume=Disk( - diskSize=MemorySize(value=10, unit=const.UNIT_MB) + cpu=CpuCapabilities( + pCPU=CPU( + cpuArchitecture=Architectures.Other, + defaultOversubscriptionRatio=1, + numberOfCores=4), + vCPUs=4), + memory=MemoryCapabilities( + memory = Memory( + memorySize=MemorySize(value=10, unit=const.UNIT_MB))), + bootVolume=Disk( + diskSize=MemorySize(value=10, unit=const.UNIT_MB) ) ) +GX_VOL_TYPE_1 = StorageConfiguration() -class OpenstackDiscoveyTestCase(unittest.TestCase): + + + +class OpenstackDiscoveyTestCase(OpenstackTestcase): def setUp(self): self.discovery = OpenstackDiscovery( conn=MockConnection(images=[], flavors=[]), config=get_config()) + @patch("generator.discovery.openstack.volume_type_discovery.VolumeTypeDiscovery.discover") @patch("generator.discovery.openstack.vm_images_discovery.VmImageDiscovery.discover") @patch("generator.discovery.openstack.server_flavor_discovery.ServerFlavorDiscovery.discover") @patch("requests.get") - def test_generate_gx_credentials(self, request_get, flavor_discovery, image_discovery): + def test_generate_gx_credentials(self, request_get, flavor_discovery, image_discovery, vol_type_discovery): # Mock openstack calls request_get.side_effect = [MagicMock(status_code=200, text="foo"), MagicMock(status_code=200, text="foo")] flavor_discovery.return_value = [GX_FLAVOR_1] image_discovery.return_value = [GX_IMAGE_1] + vol_type_discovery.return_value = [GX_VOL_TYPE_1] # run tests self.discovery.discover() @@ -49,6 +57,9 @@ def test_generate_gx_credentials(self, request_get, flavor_discovery, image_disc # check results image_discovery.assert_called_once() flavor_discovery.assert_called_once() + vol_type_discovery.assert_called_once() + + # Todo test returned services if __name__ == "__main__": diff --git a/tests/test_server_flavor_discovery.py b/tests/test_server_flavor_discovery.py index cb66bf3..377814c 100644 --- a/tests/test_server_flavor_discovery.py +++ b/tests/test_server_flavor_discovery.py @@ -3,10 +3,9 @@ from openstack.compute.v2.flavor import Flavor as OS_Flavor from generator.common import const -from generator.common.gx_schema import CPU from generator.common.gx_schema import Architectures as CpuArch -from generator.common.gx_schema import (Disk, DiskBusType, DiskType, Frequency, - Hypervisor, Memory, MemorySize) +from generator.common.gx_schema import (CpuCapabilities, CPU, Disk, DiskBusType, DiskType, Frequency, + Hypervisor, MemoryCapabilities, Memory, MemorySize) from generator.common.gx_schema import ServerFlavor as GX_Flavor from generator.discovery.openstack.server_flavor_discovery import \ ServerFlavorDiscovery @@ -26,93 +25,112 @@ def setUp(self): conn=MockConnection(flavors=[OS_FLAVOR_1, OS_FLAVOR_2]), conf=self.conf) def test_get_cpu(self): - self.assertEqual( - CPU(cpuArchitecture=CpuArch.Other, numberOfCores=0), + self.assert_cpu_cap(CpuCapabilities( + pCPU=CPU(cpuArchitecture=CpuArch.Other), + vCPUs=0), self.discovery._convert_to_gx(OS_Flavor(name="ABC")).cpu, ) - self.assertEqual( - CPU( + self.assert_cpu_cap(CpuCapabilities( + pCPU=CPU( cpuArchitecture=CpuArch.Other, - defaultOversubscriptionRatio=1, - numberOfCores=4, + smtEnabled=False ), + overProvisioningRatio=1, + vCPUs=4), self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4", vcpus=4)).cpu, ) - self.assertEqual( - CPU( + self.assert_cpu_cap(CpuCapabilities( + pCPU=CPU( cpuArchitecture=CpuArch.Other, - defaultOversubscriptionRatio=1, - numberOfCores=4, smtEnabled=True, ), + overProvisioningRatio=1, + vCPUs=4), self.discovery._convert_to_gx(OS_Flavor(name="SCS-2T-4", vcpus=4)).cpu, ) - self.assertEqual( - CPU( + self.assert_cpu_cap(CpuCapabilities( + pCPU=CPU( cpuArchitecture=CpuArch.Other, - defaultOversubscriptionRatio=5, - numberOfCores=4, smtEnabled=True, ), + overProvisioningRatio=5, + vCPUs=4), self.discovery._convert_to_gx(OS_Flavor(name="SCS-2V-4", vcpus=4)).cpu, ) - self.assertEqual( - CPU( + self.assert_cpu_cap(CpuCapabilities( + pCPU=CPU( cpuArchitecture=CpuArch.Other, - defaultOversubscriptionRatio=16, - numberOfCores=4, smtEnabled=True, ), + overProvisioningRatio=16, + vCPUs=4), self.discovery._convert_to_gx(OS_Flavor(name="SCS-2L-4", vcpus=4)).cpu, ) - self.assertEqual( - CPU(cpuArchitecture=CpuArch.Other, numberOfCores=4), + self.assert_cpu_cap(CpuCapabilities( + pCPU=CPU(cpuArchitecture=CpuArch.Other), + vCPUs=4), self.discovery._convert_to_gx(OS_Flavor(name="SCS-2:8", vcpus=4)).cpu, ) def test_get_mem(self): - self.assertEqual( - Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=True), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4-10n", ram=10)).ram, + self.assert_memory_cap(MemoryCapabilities( + memory= + Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), + eccEnabled=True)), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4-10n", ram=10)).memory, ) - self.assertEqual( - Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=True), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-3.5-10n", ram=10)).ram, + self.assert_memory_cap(MemoryCapabilities( + memory= + Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), + eccEnabled=True)), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-3.5-10n", ram=10)).memory, ) - self.assertEqual( - Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=False), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4u-10n", ram=10)).ram, + self.assert_memory_cap(MemoryCapabilities( + memory= + Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), + eccEnabled=False)), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4u-10n", ram=10)).memory, ) - self.assertEqual( + self.assert_memory_cap(MemoryCapabilities( + memory= Memory( - memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=True, - defaultOversubscriptionRatio=2, + memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=True ), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4o-10n", ram=10)).ram, + overProvisioningRatio=2), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4o-10n", ram=10)).memory, ) - self.assertEqual( - Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=False), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4ou-10n", ram=10)).ram, + self.assert_memory_cap(MemoryCapabilities( + memory=Memory( + memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=False)), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4ou-10n", ram=10)).memory, ) - self.assertEqual( + self.assert_memory_cap(MemoryCapabilities( + memory= Memory( memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=False, - defaultOversubscriptionRatio=2, ), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4uo-10n", ram=10)).ram, + overProvisioningRatio=2 + ), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4uo-10n", ram=10)).memory, ) - self.assertEqual( - Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=False), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C_", ram=10)).ram, + self.assert_memory_cap(MemoryCapabilities( + memory= + Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), + eccEnabled=False)), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C_", ram=10)).memory, ) - self.assertEqual( - Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=False), - self.discovery._convert_to_gx(OS_Flavor(name="SCS-2V:8", ram=10)).ram, + self.assert_memory_cap(MemoryCapabilities( + memory= + Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), + eccEnabled=False)), + self.discovery._convert_to_gx(OS_Flavor(name="SCS-2V:8", ram=10)).memory, ) - self.assertEqual( - Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), eccEnabled=False), - self.discovery._convert_to_gx(OS_Flavor(name="test", ram=10)).ram, + self.assert_memory_cap(MemoryCapabilities( + memory= + Memory(memorySize=MemorySize(value=10, unit=const.UNIT_MB), + eccEnabled=False)), + self.discovery._convert_to_gx(OS_Flavor(name="test", ram=10)).memory, ) def test_get_disks(self): @@ -142,15 +160,16 @@ def test_get_disks(self): Disk(diskSize=MemorySize(value=10, unit=const.UNIT_GB), diskType=DiskType("local HDD"), diskBusType=DiskBusType.NVMe) ], - [gx_flavor.bootVolume] + gx_flavor.additionalVolume, + [gx_flavor.bootVolume] ) gx_flavor = self.discovery._convert_to_gx(OS_Flavor(name="SCS-2C-4-10h", disk=50)) self.assertEqual( [ - Disk(diskSize=MemorySize(value=10, unit=const.UNIT_GB), diskType=DiskType("local HDD"),) + Disk(diskSize=MemorySize(value=10, unit=const.UNIT_GB), diskType=DiskType("local HDD"), ) ], - [gx_flavor.bootVolume] + gx_flavor.additionalVolume, + [gx_flavor.bootVolume] ) + self.assertEqual({}, gx_flavor.additionalVolume) def test_parse_optional_flavor_properties(self): # check hypervisor @@ -267,14 +286,15 @@ def test_discovery(self): received_gax_flavors = self.discovery.discover() # init expected objects - gax_flavor_1 = self._init_gx_flavor(ram=16, disk=0, number_of_cores=2) - gax_flavor_2 = self._init_gx_flavor(ram=16, disk=50, cpu_arc=CpuArch("x86-64"), cpu_vendor="AMD", + gax_flavor_1 = self._init_gx_flavor(ram=16, disk=0, vCPUs=2, name="ABC") + gax_flavor_2 = self._init_gx_flavor(name="SCS-4L-32uo-3x50s_kvm_z3hh", ram=16, disk=50, + cpu_arc=CpuArch("x86-64"), cpu_vendor="AMD", cpu_gen="Zen-3 (Milan)", - cpu_freq=Frequency(value=3.25, unit=const.UNIT_GHZ), number_of_cores=2) - gax_flavor_2.cpu.defaultOversubscriptionRatio = 16 - gax_flavor_2.cpu.smtEnabled = True - gax_flavor_2.ram.eccEnabled = False - gax_flavor_2.ram.defaultOversubscriptionRatio = 2 + cpu_freq=Frequency(value=3.25, unit=const.UNIT_GHZ), vCPUs=2) + gax_flavor_2.cpu.overProvisioningRatio = 16 + gax_flavor_2.cpu.pCPU.smtEnabled = True + gax_flavor_2.memory.memory.eccEnabled = False + gax_flavor_2.memory.overProvisioningRatio = 2 gax_flavor_2.bootVolume = Disk( diskSize=MemorySize(value=50, unit=const.UNIT_GB), diskType=DiskType("local SSD")) @@ -295,10 +315,11 @@ def test_discovery(self): def _init_gx_flavor( self, + name: str = None, ram: int = 32, disk: int = 50, cpu_arc: CpuArch = CpuArch.Other, - number_of_cores=1, + vCPUs=1, cpu_vendor: str = None, cpu_gen: str = None, cpu_freq: Frequency = None, @@ -306,15 +327,17 @@ def _init_gx_flavor( hv: bool = False ) -> GX_Flavor: gx_flavor = GX_Flavor( - # name=os_flavor.name, - cpu=CPU( - cpuArchitecture=cpu_arc, - vendor=cpu_vendor, - generation=cpu_gen, - baseFrequency=cpu_freq, - numberOfCores=number_of_cores, - ), - ram=Memory(memorySize=MemorySize(value=ram, unit=const.UNIT_MB)), + name=name, + cpu=CpuCapabilities( + pCPU=CPU( + cpuArchitecture=cpu_arc, + vendor=cpu_vendor, + generation=cpu_gen, + baseFrequency=cpu_freq), + vCPUs=vCPUs), + memory=MemoryCapabilities( + memory=Memory( + memorySize=MemorySize(value=ram, unit=const.UNIT_MB))), bootVolume=Disk(diskSize=MemorySize(value=disk, unit=const.UNIT_GB)), hardwareAssistedVirtualization=hw_virt) if hv: diff --git a/tests/test_vm_image_discovery.py b/tests/test_vm_image_discovery.py index f8e252d..5961251 100644 --- a/tests/test_vm_image_discovery.py +++ b/tests/test_vm_image_discovery.py @@ -25,7 +25,7 @@ copyrightOwnedBy=["Fedora-Project"], license=["https://docs.fedoraproject.org/en-US/legal/fedora-linux-license/"], resourcePolicy=["default: allow intent"], - checksum=CheckSum( + checkSum=CheckSum( checkSumCalculation="sha-512", checkSumValue="7f8bababc2c2a94880747383750470aee68c7e8840bb8811eaeda1b0ce71d59f40ebb182", ), @@ -43,7 +43,7 @@ "https://docs.fedoraproject.org/en-US/legal/fedora-linux-license/" ], resourcePolicy=["default: allow intent"], - checksum=None, + checkSum=None, signature=None, version="Stable", patchLevel=None, @@ -94,7 +94,6 @@ diskBusType="SCSI", ), encryption=None, - checkSum=None, secureBoot=True, vPMU=False, multiQueues=True, @@ -129,7 +128,7 @@ copyrightOwnedBy=["The FreeBSD Project"], license=["GPL-3.0-only", "LGPL-2.0"], resourcePolicy=["default: allow intent"], - checksum=None, + checkSum=None, signature=None, version=None, osDistribution="FreeBSD", From c48bc45cc74e04952de18910e69b8aaec0ee330a Mon Sep 17 00:00:00 2001 From: Anja Strunk Date: Tue, 5 Nov 2024 12:55:03 +0100 Subject: [PATCH 20/20] Fix test cases Signed-off-by: Anja Strunk --- generator/common/gx_schema.py | 55 ++++++------------- .../openstack/openstack_discovery.py | 4 +- tests/test_cli.py | 5 +- tests/test_server_flavor_discovery.py | 2 +- tests/test_volume_types_discovery.py | 2 +- 5 files changed, 26 insertions(+), 42 deletions(-) diff --git a/generator/common/gx_schema.py b/generator/common/gx_schema.py index 6d2a4fd..6ae9365 100644 --- a/generator/common/gx_schema.py +++ b/generator/common/gx_schema.py @@ -1,5 +1,5 @@ # Auto generated from gaia-x.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-10-24T13:35:54 +# Generation date: 2024-10-30T13:54:11 # Schema: gaia-x # # id: https://w3id.org/gaia-x/development#gaia-x @@ -1318,7 +1318,7 @@ class GPU(Device): class_model_uri: ClassVar[URIRef] = GX.GPU gpuMemory: Optional[Union[dict, "MemorySize"]] = None - gpuInterconnection: Optional[Union[str, "GPUInterconnetionTypes"]] = None + gpuInterconnection: Optional[Union[str, "GPUInterconnetionTypes"]] = "none" gpuProcessingUnits: Optional[int] = None gpuPassthrough: Optional[Union[bool, Bool]] = False @@ -2665,26 +2665,6 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): super().__post_init__(**kwargs) -@dataclass(repr=False) -class LogicalConstraint(YAMLRoot): - """ - ODRL Core Vocabulary Terms related to Logical Constraints - """ - _inherited_slots: ClassVar[List[str]] = [] - - class_class_uri: ClassVar[URIRef] = ODRL["LogicalConstraint"] - class_class_curie: ClassVar[str] = "odrl:LogicalConstraint" - class_name: ClassVar[str] = "LogicalConstraint" - class_model_uri: ClassVar[URIRef] = GX.LogicalConstraint - - operand: Optional[str] = None - - def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): - if self.operand is not None and not isinstance(self.operand, str): - self.operand = str(self.operand) - - super().__post_init__(**kwargs) - class Participant(GaiaXEntity): """ An legal or natural person that is onboarded to Gaia-X and offers, consumes services or operates resources. @@ -4926,7 +4906,7 @@ class StorageServiceOffering(InfrastructureServiceOffering): providedBy: Union[str, LegalPersonRegistrationNumber] = None serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - storageConfiguration: Union[dict, StorageConfiguration] = None + storageConfiguration: Union[Union[dict, StorageConfiguration], List[Union[dict, StorageConfiguration]]] = None minimumSize: Optional[Union[dict, MemorySize]] = None maximumSize: Optional[Union[dict, MemorySize]] = None lifetimeManagement: Optional[int] = None @@ -4938,8 +4918,10 @@ class StorageServiceOffering(InfrastructureServiceOffering): def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.storageConfiguration): self.MissingRequiredField("storageConfiguration") - if not isinstance(self.storageConfiguration, StorageConfiguration): - self.storageConfiguration = StorageConfiguration(**as_dict(self.storageConfiguration)) + if not isinstance(self.storageConfiguration, list): + self.storageConfiguration = [self.storageConfiguration] if self.storageConfiguration is not None else [] + self.storageConfiguration = [v if isinstance(v, StorageConfiguration) else StorageConfiguration(**as_dict(v)) + for v in self.storageConfiguration] if self.minimumSize is not None and not isinstance(self.minimumSize, MemorySize): self.minimumSize = MemorySize(**as_dict(self.minimumSize)) @@ -4980,15 +4962,16 @@ class FileStorageServiceOffering(StorageServiceOffering): providedBy: Union[str, LegalPersonRegistrationNumber] = None serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - storageConfiguration: Union[dict, FileStorageConfiguration] = None + storageConfiguration: Union[Union[dict, FileStorageConfiguration], List[Union[dict, FileStorageConfiguration]]] = None accessSemantics: Optional[Union[bool, Bool]] = None accessAttributes: Optional[Union[Union[str, "AccessAttribute"], List[Union[str, "AccessAttribute"]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.storageConfiguration): self.MissingRequiredField("storageConfiguration") - if not isinstance(self.storageConfiguration, FileStorageConfiguration): - self.storageConfiguration = FileStorageConfiguration(**as_dict(self.storageConfiguration)) + if not isinstance(self.storageConfiguration, list): + self.storageConfiguration = [self.storageConfiguration] if self.storageConfiguration is not None else [] + self.storageConfiguration = [v if isinstance(v, FileStorageConfiguration) else FileStorageConfiguration(**as_dict(v)) for v in self.storageConfiguration] if self.accessSemantics is not None and not isinstance(self.accessSemantics, Bool): self.accessSemantics = Bool(self.accessSemantics) @@ -5015,13 +4998,14 @@ class BlockStorageServiceOffering(StorageServiceOffering): providedBy: Union[str, LegalPersonRegistrationNumber] = None serviceOfferingTermsAndConditions: Union[Union[dict, TermsAndConditions], List[Union[dict, TermsAndConditions]]] = None dataAccountExport: Union[Union[dict, DataAccountExport], List[Union[dict, DataAccountExport]]] = None - storageConfiguration: Union[dict, BlockStorageConfiguration] = None + storageConfiguration: Union[Union[dict, BlockStorageConfiguration], List[Union[dict, BlockStorageConfiguration]]] = None def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.storageConfiguration): self.MissingRequiredField("storageConfiguration") - if not isinstance(self.storageConfiguration, BlockStorageConfiguration): - self.storageConfiguration = BlockStorageConfiguration(**as_dict(self.storageConfiguration)) + if not isinstance(self.storageConfiguration, list): + self.storageConfiguration = [self.storageConfiguration] if self.storageConfiguration is not None else [] + self.storageConfiguration = [v if isinstance(v, BlockStorageConfiguration) else BlockStorageConfiguration(**as_dict(v)) for v in self.storageConfiguration] super().__post_init__(**kwargs) @@ -5213,7 +5197,7 @@ class ServerFlavor(InstantiationRequirement): confidentialComputing: Optional[Union[dict, "ConfidentialComputing"]] = None hypervisor: Optional[Union[dict, Hypervisor]] = None hardwareAssistedVirtualization: Optional[Union[bool, Bool]] = False - hwRngTypeOfFlavor: Optional[Union[str, "RNGTypes"]] = None + hwRngTypeOfFlavor: Optional[Union[str, "RNGTypes"]] = "None" def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self._is_empty(self.cpu): @@ -37017,9 +37001,6 @@ class slots: slots.rule__constraint = Slot(uri=ODRL.constraint, name="rule__constraint", curie=ODRL.curie('constraint'), model_uri=GX.rule__constraint, domain=None, range=Optional[Union[Union[dict, Constraint], List[Union[dict, Constraint]]]]) -slots.rule__logicalConstraint = Slot(uri=ODRL.logicalConstraint, name="rule__logicalConstraint", curie=ODRL.curie('logicalConstraint'), - model_uri=GX.rule__logicalConstraint, domain=None, range=Optional[Union[Union[dict, LogicalConstraint], List[Union[dict, LogicalConstraint]]]]) - slots.rule__duty = Slot(uri=ODRL.duty, name="rule__duty", curie=ODRL.curie('duty'), model_uri=GX.rule__duty, domain=None, range=Optional[Union[Union[dict, Duty], List[Union[dict, Duty]]]]) @@ -37336,7 +37317,7 @@ class slots: model_uri=GX.storageServiceOffering__multipleViews, domain=None, range=Optional[Union[bool, Bool]]) slots.fileStorageServiceOffering__storageConfiguration = Slot(uri=GX.storageConfiguration, name="fileStorageServiceOffering__storageConfiguration", curie=GX.curie('storageConfiguration'), - model_uri=GX.fileStorageServiceOffering__storageConfiguration, domain=None, range=Union[dict, FileStorageConfiguration]) + model_uri=GX.fileStorageServiceOffering__storageConfiguration, domain=None, range=Union[Union[dict, FileStorageConfiguration], List[Union[dict, FileStorageConfiguration]]]) slots.fileStorageServiceOffering__accessSemantics = Slot(uri=GX.accessSemantics, name="fileStorageServiceOffering__accessSemantics", curie=GX.curie('accessSemantics'), model_uri=GX.fileStorageServiceOffering__accessSemantics, domain=None, range=Optional[Union[bool, Bool]]) @@ -37345,7 +37326,7 @@ class slots: model_uri=GX.fileStorageServiceOffering__accessAttributes, domain=None, range=Optional[Union[Union[str, "AccessAttribute"], List[Union[str, "AccessAttribute"]]]]) slots.blockStorageServiceOffering__storageConfiguration = Slot(uri=GX.storageConfiguration, name="blockStorageServiceOffering__storageConfiguration", curie=GX.curie('storageConfiguration'), - model_uri=GX.blockStorageServiceOffering__storageConfiguration, domain=None, range=Union[dict, BlockStorageConfiguration]) + model_uri=GX.blockStorageServiceOffering__storageConfiguration, domain=None, range=Union[Union[dict, BlockStorageConfiguration], List[Union[dict, BlockStorageConfiguration]]]) slots.objectStorageServiceOffering__accessAttributes = Slot(uri=GX.accessAttributes, name="objectStorageServiceOffering__accessAttributes", curie=GX.curie('accessAttributes'), model_uri=GX.objectStorageServiceOffering__accessAttributes, domain=None, range=Optional[Union[Union[str, "AccessAttribute"], List[Union[str, "AccessAttribute"]]]]) diff --git a/generator/discovery/openstack/openstack_discovery.py b/generator/discovery/openstack/openstack_discovery.py index fc4b6f7..a6c4fa1 100644 --- a/generator/discovery/openstack/openstack_discovery.py +++ b/generator/discovery/openstack/openstack_discovery.py @@ -47,7 +47,7 @@ def discover(self) -> VirtualMachineServiceOffering: vm_offering = self._create_vm_offering(images,flavors, mand_props) storage_offering = self._create_storage_offering(vol_types, mand_props) - vm_offering.dependsOn(storage_offering) + vm_offering.dependsOn.append(storage_offering) return vm_offering @@ -117,6 +117,6 @@ def _create_vm_offering(self, images: List[GX_Image], flavors: List[GX_Flavor], def _create_storage_offering(self, vol_types: List[GX_Type], mand_prop: dict) -> BlockStorageServiceOffering: return BlockStorageServiceOffering( - storageConfiguration=[StorageConfiguration()], + storageConfiguration=vol_types, **mand_prop ) diff --git a/tests/test_cli.py b/tests/test_cli.py index 23a33ec..fc9e10b 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -30,7 +30,9 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx providedBy="foo", serviceOfferingTermsAndConditions=[TermsAndConditions( url="https://example.com/tandc", - hash="123")], + hash="123"), TermsAndConditions( + url="https://example.com/tandc2", + hash="124")], dataAccountExport=DataAccountExport( requestType="API", accessType="digital", @@ -52,6 +54,7 @@ def test_generate_vsmo(self, cli_print_vs, os_connect, os_discover, load_jwk, gx conf = config.Config(yaml.safe_load(config_file)) vcs = cli.create_vmso_vcs(conf, "myCloud", csp_vcs) + os_connect.assert_called_once() os_discover.assert_called_once() gxdch_req_compl.assert_called_once() diff --git a/tests/test_server_flavor_discovery.py b/tests/test_server_flavor_discovery.py index 377814c..96c034d 100644 --- a/tests/test_server_flavor_discovery.py +++ b/tests/test_server_flavor_discovery.py @@ -20,7 +20,7 @@ class VMServerFlavorDiscoveryTestcase(OpenstackTestcase): def setUp(self): - self.conf = self.get_config() + self.conf = get_config() self.discovery = ServerFlavorDiscovery( conn=MockConnection(flavors=[OS_FLAVOR_1, OS_FLAVOR_2]), conf=self.conf) diff --git a/tests/test_volume_types_discovery.py b/tests/test_volume_types_discovery.py index 19856a8..8d5fa44 100644 --- a/tests/test_volume_types_discovery.py +++ b/tests/test_volume_types_discovery.py @@ -32,7 +32,7 @@ class VolumeTypeDiscoveryTestcase(OpenstackTestcase): def setUp(self): - self.conf = self.get_config() + self.conf = get_config() self.discovery = VolumeTypeDiscovery( conn=MockConnection(types=[OS_TYPE_1, OS_TYPE_2,