From 2a98db2ddf4edf7f2e3574eb07008bb275a7e876 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Thu, 18 Dec 2025 03:39:43 -0800 Subject: [PATCH 1/4] fix: Fix Metadata Taxonomy GET options path (box/box-openapi#573) --- .codegen.json | 2 +- box_sdk_gen/managers/metadata_taxonomies.py | 17 +++++------------ docs/box_sdk_gen/metadata_taxonomies.md | 4 ++-- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.codegen.json b/.codegen.json index 383058e7..453109b3 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c370934", "specHash": "a4bdc72", "version": "4.2.0" } +{ "engineHash": "c370934", "specHash": "f3c7c76", "version": "4.2.0" } diff --git a/box_sdk_gen/managers/metadata_taxonomies.py b/box_sdk_gen/managers/metadata_taxonomies.py index 868e2224..5cc8e713 100644 --- a/box_sdk_gen/managers/metadata_taxonomies.py +++ b/box_sdk_gen/managers/metadata_taxonomies.py @@ -1,5 +1,3 @@ -from enum import Enum - from typing import Optional from typing import Dict @@ -49,11 +47,6 @@ from box_sdk_gen.serialization.json import sd_to_json -class GetMetadataTemplateFieldOptionsScope(str, Enum): - GLOBAL = 'global' - ENTERPRISE = 'enterprise' - - class MetadataTaxonomiesManager: def __init__( self, @@ -799,7 +792,7 @@ def delete_metadata_taxonomy_node( def get_metadata_template_field_options( self, - scope: GetMetadataTemplateFieldOptionsScope, + namespace: str, template_key: str, field_key: str, *, @@ -824,9 +817,9 @@ def get_metadata_template_field_options( With a `query` parameter specified, results are sorted in order of relevance. - :param scope: The scope of the metadata template. - Example: "global" - :type scope: GetMetadataTemplateFieldOptionsScope + :param namespace: The namespace of the metadata taxonomy. + Example: "enterprise_123456" + :type namespace: str :param template_key: The name of the metadata template. Example: "properties" :type template_key: str @@ -882,7 +875,7 @@ def get_metadata_template_field_options( [ self.network_session.base_urls.base_url, '/2.0/metadata_templates/', - to_string(scope), + to_string(namespace), '/', to_string(template_key), '/fields/', diff --git a/docs/box_sdk_gen/metadata_taxonomies.md b/docs/box_sdk_gen/metadata_taxonomies.md index 062980df..b26872f7 100644 --- a/docs/box_sdk_gen/metadata_taxonomies.md +++ b/docs/box_sdk_gen/metadata_taxonomies.md @@ -502,8 +502,8 @@ _Currently we don't have an example for calling `get_metadata_template_field_opt ### Arguments -- scope `GetMetadataTemplateFieldOptionsScope` - - The scope of the metadata template. Example: "global" +- namespace `str` + - The namespace of the metadata taxonomy. Example: "enterprise_123456" - template_key `str` - The name of the metadata template. Example: "properties" - field_key `str` From 3e4c2ef2c6288e5a422a9bed2b20ed3f19001d5d Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Thu, 18 Dec 2025 04:44:05 -0800 Subject: [PATCH 2/4] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 453109b3..e67a094d 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "c370934", "specHash": "f3c7c76", "version": "4.2.0" } +{ "engineHash": "a8f83de", "specHash": "f3c7c76", "version": "4.2.0" } From 9b7ed0c6c5e846bed18449198700ce961d0b13aa Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Thu, 18 Dec 2025 09:14:51 -0800 Subject: [PATCH 3/4] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index e67a094d..df71ab33 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a8f83de", "specHash": "f3c7c76", "version": "4.2.0" } +{ "engineHash": "a8f83de", "specHash": "1617aaf", "version": "4.2.0" } From 6403ed7d66b183b16130e9deab746ce5b245f855 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Thu, 18 Dec 2025 10:47:21 -0800 Subject: [PATCH 4/4] test: Update Metadata Taxonomies tests (box/box-codegen#909) --- .codegen.json | 2 +- box_sdk_gen/managers/metadata_taxonomies.py | 2 +- docs/box_sdk_gen/metadata_taxonomies.md | 14 ++++- test/box_sdk_gen/test/metadata_taxonomies.py | 63 +++++++++++++++++++- 4 files changed, 75 insertions(+), 6 deletions(-) diff --git a/.codegen.json b/.codegen.json index df71ab33..a537d7da 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a8f83de", "specHash": "1617aaf", "version": "4.2.0" } +{ "engineHash": "41c28e1", "specHash": "1617aaf", "version": "4.2.0" } diff --git a/box_sdk_gen/managers/metadata_taxonomies.py b/box_sdk_gen/managers/metadata_taxonomies.py index 5cc8e713..fe6421d6 100644 --- a/box_sdk_gen/managers/metadata_taxonomies.py +++ b/box_sdk_gen/managers/metadata_taxonomies.py @@ -338,7 +338,7 @@ def create_metadata_taxonomy_level( ) return deserialize(response.data, MetadataTaxonomyLevels) - def patch_metadata_taxonomies_id_id_levels_id( + def update_metadata_taxonomy_level_by_id( self, namespace: str, taxonomy_key: str, diff --git a/docs/box_sdk_gen/metadata_taxonomies.md b/docs/box_sdk_gen/metadata_taxonomies.md index b26872f7..f4a15182 100644 --- a/docs/box_sdk_gen/metadata_taxonomies.md +++ b/docs/box_sdk_gen/metadata_taxonomies.md @@ -211,12 +211,16 @@ Returns an array of all taxonomy levels. Updates an existing metadata taxonomy level. -This operation is performed by calling function `patch_metadata_taxonomies_id_id_levels_id`. +This operation is performed by calling function `update_metadata_taxonomy_level_by_id`. See the endpoint docs at [API Reference](https://developer.box.com/reference/patch-metadata-taxonomies-id-id-levels-id/). -_Currently we don't have an example for calling `patch_metadata_taxonomies_id_id_levels_id` in integration tests_ + + +```python +client.metadata_taxonomies.update_metadata_taxonomy_level_by_id(namespace, taxonomy_key, 1, 'Continent UPDATED', description='Continent Level UPDATED') +``` ### Arguments @@ -498,7 +502,11 @@ This operation is performed by calling function `get_metadata_template_field_opt See the endpoint docs at [API Reference](https://developer.box.com/reference/get-metadata-templates-id-id-fields-id-options/). -_Currently we don't have an example for calling `get_metadata_template_field_options` in integration tests_ + + +```python +client.metadata_taxonomies.get_metadata_template_field_options(namespace, metadata_template_key, 'taxonomy') +``` ### Arguments diff --git a/test/box_sdk_gen/test/metadata_taxonomies.py b/test/box_sdk_gen/test/metadata_taxonomies.py index 23f2675d..c50aaa61 100644 --- a/test/box_sdk_gen/test/metadata_taxonomies.py +++ b/test/box_sdk_gen/test/metadata_taxonomies.py @@ -1,5 +1,7 @@ import pytest +from box_sdk_gen.internal.utils import to_string + from box_sdk_gen.client import BoxClient from box_sdk_gen.schemas.metadata_taxonomy import MetadataTaxonomy @@ -14,6 +16,20 @@ from box_sdk_gen.schemas.metadata_taxonomy_nodes import MetadataTaxonomyNodes +from box_sdk_gen.schemas.metadata_template import MetadataTemplate + +from box_sdk_gen.managers.metadata_templates import CreateMetadataTemplateFields + +from box_sdk_gen.managers.metadata_templates import ( + CreateMetadataTemplateFieldsTypeField, +) + +from box_sdk_gen.managers.metadata_templates import ( + CreateMetadataTemplateFieldsOptionsRulesField, +) + +from box_sdk_gen.managers.metadata_templates import DeleteMetadataTemplateScope + from box_sdk_gen.internal.utils import get_uuid from box_sdk_gen.internal.utils import get_env_var @@ -91,6 +107,18 @@ def testMetadataTaxonomiesNodes(): assert len(taxonomy_levels.entries) == 2 assert taxonomy_levels.entries[0].display_name == 'Continent' assert taxonomy_levels.entries[1].display_name == 'Country' + updated_taxonomy_levels: MetadataTaxonomyLevel = ( + client.metadata_taxonomies.update_metadata_taxonomy_level_by_id( + namespace, + taxonomy_key, + 1, + 'Continent UPDATED', + description='Continent Level UPDATED', + ) + ) + assert updated_taxonomy_levels.display_name == 'Continent UPDATED' + assert updated_taxonomy_levels.description == 'Continent Level UPDATED' + assert updated_taxonomy_levels.level == taxonomy_levels.entries[0].level taxonomy_levels_after_addition: MetadataTaxonomyLevels = ( client.metadata_taxonomies.add_metadata_taxonomy_level( namespace, taxonomy_key, 'Region', description='Region Description' @@ -104,7 +132,7 @@ def testMetadataTaxonomiesNodes(): ) ) assert len(taxonomy_levels_after_deletion.entries) == 2 - assert taxonomy_levels_after_deletion.entries[0].display_name == 'Continent' + assert taxonomy_levels_after_deletion.entries[0].display_name == 'Continent UPDATED' assert taxonomy_levels_after_deletion.entries[1].display_name == 'Country' continent_node: MetadataTaxonomyNode = ( client.metadata_taxonomies.create_metadata_taxonomy_node( @@ -142,6 +170,39 @@ def testMetadataTaxonomiesNodes(): ) assert get_country_node.display_name == 'Poland UPDATED' assert get_country_node.id == country_node.id + metadata_template_key: str = ''.join(['templateKey', get_uuid()]) + metadata_template: MetadataTemplate = ( + client.metadata_templates.create_metadata_template( + 'enterprise', + metadata_template_key, + template_key=metadata_template_key, + fields=[ + CreateMetadataTemplateFields( + type=CreateMetadataTemplateFieldsTypeField.TAXONOMY, + key='taxonomy', + display_name='taxonomy', + taxonomy_key=taxonomy_key, + namespace=namespace, + options_rules=CreateMetadataTemplateFieldsOptionsRulesField( + multi_select=True, selectable_levels=[1] + ), + ) + ], + ) + ) + assert metadata_template.template_key == metadata_template_key + assert metadata_template.display_name == metadata_template_key + assert len(metadata_template.fields) == 1 + assert to_string(metadata_template.fields[0].type) == 'taxonomy' + options: MetadataTaxonomyNodes = ( + client.metadata_taxonomies.get_metadata_template_field_options( + namespace, metadata_template_key, 'taxonomy' + ) + ) + assert len(options.entries) == 1 + client.metadata_templates.delete_metadata_template( + DeleteMetadataTemplateScope.ENTERPRISE, metadata_template_key + ) client.metadata_taxonomies.delete_metadata_taxonomy_node( namespace, taxonomy_key, country_node.id )