From 67891ca474e62f19982ebf375fc0a2ebe2562c80 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Wed, 3 Apr 2024 19:48:29 +0900 Subject: [PATCH 01/24] chore: Correct a version notation of Resource policy GQL schema --- .../backend/manager/models/resource_policy.py | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index c28f5ab818..b9249e4901 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -151,7 +151,7 @@ class KeyPairResourcePolicy(graphene.ObjectType): max_vfolder_count = graphene.Int(deprecation_reason="Deprecated since 23.09.4") max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.4") - max_quota_scope_size = BigInt(deprecation_reason="Deprecated since 23.09.4") + max_quota_scope_size = BigInt(deprecation_reason="Deprecated since 23.09.6.") @classmethod def from_row( @@ -303,7 +303,7 @@ class CreateKeyPairResourcePolicyInput(graphene.InputObjectType): allowed_vfolder_hosts = graphene.JSONString(required=False) max_vfolder_count = graphene.Int(required=False, deprecation_reason="Deprecated since 23.09.4") max_vfolder_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4") - max_quota_scope_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4") + max_quota_scope_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.6.") class ModifyKeyPairResourcePolicyInput(graphene.InputObjectType): @@ -317,7 +317,7 @@ class ModifyKeyPairResourcePolicyInput(graphene.InputObjectType): allowed_vfolder_hosts = graphene.JSONString(required=False) max_vfolder_count = graphene.Int(required=False, deprecation_reason="Deprecated since 23.09.4") max_vfolder_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4") - max_quota_scope_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4") + max_quota_scope_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.6.") class CreateKeyPairResourcePolicy(graphene.Mutation): @@ -431,14 +431,14 @@ class UserResourcePolicy(graphene.ObjectType): name = graphene.String(required=True) created_at = GQLDateTime(required=True) max_vfolder_count = graphene.Int( - description="Added since 24.03.1. Limitation of the number of user vfolders." + description="Added in 24.03.0. Limitation of the number of user vfolders." ) max_quota_scope_size = BigInt( - description="Added since 24.03.1. Limitation of the quota size of user vfolders." + description="Added in 24.03.0. Limitation of the quota size of user vfolders." ) - max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.1") + max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") max_session_count_per_model_session = graphene.Int( - description="Added since 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." + description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." ) @classmethod @@ -513,26 +513,28 @@ async def batch_load_by_user( class CreateUserResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added since 24.03.1. Limitation of the number of user vfolders." + description="Added in 24.03.0. Limitation of the number of user vfolders." ) max_quota_scope_size = BigInt( - description="Added since 24.03.1. Limitation of the quota size of user vfolders." + description="Added in 24.03.0. Limitation of the quota size of user vfolders." ) max_session_count_per_model_session = graphene.Int( - description="Added since 24.03.1. Maximum available number of sessions per single model service which the user is in charge of." + description="Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of." ) + max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") class ModifyUserResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added since 24.03.1. Limitation of the number of user vfolders." + description="Added in 24.03.0. Limitation of the number of user vfolders." ) max_quota_scope_size = BigInt( - description="Added since 24.03.1. Limitation of the quota size of user vfolders." + description="Added in 24.03.0. Limitation of the quota size of user vfolders." ) max_session_count_per_model_session = graphene.Int( - description="Added since 24.03.1. Maximum available number of sessions per single model service which the user is in charge of." + description="Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of." ) + max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") class CreateUserResourcePolicy(graphene.Mutation): @@ -634,12 +636,12 @@ class ProjectResourcePolicy(graphene.ObjectType): name = graphene.String(required=True) created_at = GQLDateTime(required=True) max_vfolder_count = graphene.Int( - description="Added since 24.03.1. Limitation of the number of project vfolders." + description="Added in 24.03.0. Limitation of the number of project vfolders." ) max_quota_scope_size = BigInt( - description="Added since 24.03.1. Limitation of the quota size of project vfolders." + description="Added in 24.03.0. Limitation of the quota size of project vfolders." ) - max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.1") + max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") @classmethod def from_row( @@ -713,20 +715,22 @@ async def batch_load_by_project( class CreateProjectResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added since 24.03.1. Limitation of the number of project vfolders." + description="Added in 24.03.0. Limitation of the number of project vfolders." ) max_quota_scope_size = BigInt( - description="Added since 24.03.1. Limitation of the quota size of project vfolders." + description="Added in 24.03.0. Limitation of the quota size of project vfolders." ) + max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") class ModifyProjectResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added since 24.03.1. Limitation of the number of project vfolders." + description="Added in 24.03.0. Limitation of the number of project vfolders." ) max_quota_scope_size = BigInt( - description="Added since 24.03.1. Limitation of the quota size of project vfolders." + description="Added in 24.03.0. Limitation of the quota size of project vfolders." ) + max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") class CreateProjectResourcePolicy(graphene.Mutation): From 7a5dc130b7761066b4f73d760fcc81a3ffab56c6 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Wed, 3 Apr 2024 11:15:35 +0000 Subject: [PATCH 02/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 44 ++++++++++++----------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index 4f7e8721c1..130be8fbc0 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -554,7 +554,7 @@ type KeyPairResourcePolicy { allowed_vfolder_hosts: JSONString max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4") max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") - max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") + max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") } type UserResourcePolicy { @@ -562,15 +562,15 @@ type UserResourcePolicy { name: String! created_at: DateTime! - """Added since 24.03.1. Limitation of the number of user vfolders.""" + """Added in 24.03.0. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added since 24.03.1. Limitation of the quota size of user vfolders.""" + """Added in 24.03.0. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt - max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.1") + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") """ - Added since 23.09.10. Maximum available number of sessions per single model service which the user is in charge of. + Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int } @@ -580,12 +580,12 @@ type ProjectResourcePolicy { name: String! created_at: DateTime! - """Added since 24.03.1. Limitation of the number of project vfolders.""" + """Added in 24.03.0. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added since 24.03.1. Limitation of the quota size of project vfolders.""" + """Added in 24.03.0. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt - max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.1") + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } type ResourcePreset { @@ -1323,7 +1323,7 @@ input CreateKeyPairResourcePolicyInput { allowed_vfolder_hosts: JSONString max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4") max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") - max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") + max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") } type ModifyKeyPairResourcePolicy { @@ -1342,7 +1342,7 @@ input ModifyKeyPairResourcePolicyInput { allowed_vfolder_hosts: JSONString max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4") max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") - max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") + max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") } type DeleteKeyPairResourcePolicy { @@ -1357,16 +1357,17 @@ type CreateUserResourcePolicy { } input CreateUserResourcePolicyInput { - """Added since 24.03.1. Limitation of the number of user vfolders.""" + """Added in 24.03.0. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added since 24.03.1. Limitation of the quota size of user vfolders.""" + """Added in 24.03.0. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt """ - Added since 24.03.1. Maximum available number of sessions per single model service which the user is in charge of. + Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } type ModifyUserResourcePolicy { @@ -1375,16 +1376,17 @@ type ModifyUserResourcePolicy { } input ModifyUserResourcePolicyInput { - """Added since 24.03.1. Limitation of the number of user vfolders.""" + """Added in 24.03.0. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added since 24.03.1. Limitation of the quota size of user vfolders.""" + """Added in 24.03.0. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt """ - Added since 24.03.1. Maximum available number of sessions per single model service which the user is in charge of. + Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } type DeleteUserResourcePolicy { @@ -1399,11 +1401,12 @@ type CreateProjectResourcePolicy { } input CreateProjectResourcePolicyInput { - """Added since 24.03.1. Limitation of the number of project vfolders.""" + """Added in 24.03.0. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added since 24.03.1. Limitation of the quota size of project vfolders.""" + """Added in 24.03.0. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } type ModifyProjectResourcePolicy { @@ -1412,11 +1415,12 @@ type ModifyProjectResourcePolicy { } input ModifyProjectResourcePolicyInput { - """Added since 24.03.1. Limitation of the number of project vfolders.""" + """Added in 24.03.0. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added since 24.03.1. Limitation of the quota size of project vfolders.""" + """Added in 24.03.0. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } type DeleteProjectResourcePolicy { From 472c33fa37263545e432ff5642df0e4e4c5f5fda Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Wed, 3 Apr 2024 21:32:30 +0900 Subject: [PATCH 03/24] add news fragment --- changes/1993.misc.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/1993.misc.md diff --git a/changes/1993.misc.md b/changes/1993.misc.md new file mode 100644 index 0000000000..2ea219cbc0 --- /dev/null +++ b/changes/1993.misc.md @@ -0,0 +1 @@ +Correct a version notation of Resource policy GQL schema. \ No newline at end of file From 48f2143c77badd02c7c02a4e3ab2d12681a346dc Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Thu, 4 Apr 2024 15:09:32 +0900 Subject: [PATCH 04/24] update all GQL field version notations --- src/ai/backend/manager/models/endpoint.py | 18 +++++++++--------- src/ai/backend/manager/models/gql.py | 2 +- src/ai/backend/manager/models/group.py | 4 ++-- .../backend/manager/models/resource_policy.py | 12 ++++++------ src/ai/backend/manager/models/session.py | 2 +- src/ai/backend/manager/models/storage.py | 4 ++-- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/ai/backend/manager/models/endpoint.py b/src/ai/backend/manager/models/endpoint.py index ec24026b95..b238d65936 100644 --- a/src/ai/backend/manager/models/endpoint.py +++ b/src/ai/backend/manager/models/endpoint.py @@ -429,8 +429,8 @@ class Meta: interfaces = (Item,) endpoint_id = graphene.UUID() - image = graphene.String(deprecation_reason="Deprecated since 23.09.9; use `image_object`") - image_object = graphene.Field(ImageNode, description="Added at 23.09.9") + image = graphene.String(deprecation_reason="Deprecated since 23.09.9. use `image_object`") + image_object = graphene.Field(ImageNode, description="Added in 23.09.9.") domain = graphene.String() project = graphene.String() resource_group = graphene.String() @@ -439,15 +439,15 @@ class Meta: model = graphene.UUID() model_mount_destiation = graphene.String() created_user = graphene.UUID( - deprecation_reason="Deprecated since 23.09.8; use `created_user_id`" + deprecation_reason="Deprecated since 23.09.8. use `created_user_id`" ) - created_user_email = graphene.String(description="Added at 23.09.8") - created_user_id = graphene.UUID(description="Added at 23.09.8") + created_user_email = graphene.String(description="Added in 23.09.8.") + created_user_id = graphene.UUID(description="Added in 23.09.8.") session_owner = graphene.UUID( - deprecation_reason="Deprecated since 23.09.8; use `session_owner_id`" + deprecation_reason="Deprecated since 23.09.8. use `session_owner_id`" ) - session_owner_email = graphene.String(description="Added at 23.09.8") - session_owner_id = graphene.UUID(description="Added at 23.09.8") + session_owner_email = graphene.String(description="Added in 23.09.8.") + session_owner_id = graphene.UUID(description="Added in 23.09.8.") tag = graphene.String() startup_command = graphene.String() bootstrap_script = graphene.String() @@ -709,7 +709,7 @@ class Arguments: ok = graphene.Boolean() msg = graphene.String() - endpoint = graphene.Field(lambda: Endpoint, required=False, description="Added at 23.09.8") + endpoint = graphene.Field(lambda: Endpoint, required=False, description="Added in 23.09.8.") @classmethod async def mutate( diff --git a/src/ai/backend/manager/models/gql.py b/src/ai/backend/manager/models/gql.py index cab5464769..cb8412cac4 100644 --- a/src/ai/backend/manager/models/gql.py +++ b/src/ai/backend/manager/models/gql.py @@ -336,7 +336,7 @@ class Queries(graphene.ObjectType): graphene.String, default_value=[ProjectType.GENERAL.name], description=( - f"Added since 24.03.0. Available values: {', '.join([p.name for p in ProjectType])}" + f"Added in 24.03.0. Available values: {', '.join([p.name for p in ProjectType])}" ), ), ) diff --git a/src/ai/backend/manager/models/group.py b/src/ai/backend/manager/models/group.py index efcbff4627..55faf8c7f9 100644 --- a/src/ai/backend/manager/models/group.py +++ b/src/ai/backend/manager/models/group.py @@ -262,7 +262,7 @@ class Group(graphene.ObjectType): allowed_vfolder_hosts = graphene.JSONString() integration_id = graphene.String() resource_policy = graphene.String() - type = graphene.String(description="Added since 24.03.0.") + type = graphene.String(description="Added in 24.03.0.") scaling_groups = graphene.List(lambda: graphene.String) @@ -411,7 +411,7 @@ class GroupInput(graphene.InputObjectType): required=False, default_value="GENERAL", description=( - f"Added since 24.03.0. Available values: {', '.join([p.name for p in ProjectType])}" + f"Added in 24.03.0. Available values: {', '.join([p.name for p in ProjectType])}" ), ) description = graphene.String(required=False, default_value="") diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index b9249e4901..3f21f4f747 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -149,8 +149,8 @@ class KeyPairResourcePolicy(graphene.ObjectType): idle_timeout = BigInt() allowed_vfolder_hosts = graphene.JSONString() - max_vfolder_count = graphene.Int(deprecation_reason="Deprecated since 23.09.4") - max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.4") + max_vfolder_count = graphene.Int(deprecation_reason="Deprecated since 23.09.4.") + max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.4.") max_quota_scope_size = BigInt(deprecation_reason="Deprecated since 23.09.6.") @classmethod @@ -301,8 +301,8 @@ class CreateKeyPairResourcePolicyInput(graphene.InputObjectType): max_containers_per_session = graphene.Int(required=True) idle_timeout = BigInt(required=True) allowed_vfolder_hosts = graphene.JSONString(required=False) - max_vfolder_count = graphene.Int(required=False, deprecation_reason="Deprecated since 23.09.4") - max_vfolder_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4") + max_vfolder_count = graphene.Int(required=False, deprecation_reason="Deprecated since 23.09.4.") + max_vfolder_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4.") max_quota_scope_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.6.") @@ -315,8 +315,8 @@ class ModifyKeyPairResourcePolicyInput(graphene.InputObjectType): max_containers_per_session = graphene.Int(required=False) idle_timeout = BigInt(required=False) allowed_vfolder_hosts = graphene.JSONString(required=False) - max_vfolder_count = graphene.Int(required=False, deprecation_reason="Deprecated since 23.09.4") - max_vfolder_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4") + max_vfolder_count = graphene.Int(required=False, deprecation_reason="Deprecated since 23.09.4.") + max_vfolder_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4.") max_quota_scope_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.6.") diff --git a/src/ai/backend/manager/models/session.py b/src/ai/backend/manager/models/session.py index 687f5f2694..0968eca4ec 100644 --- a/src/ai/backend/manager/models/session.py +++ b/src/ai/backend/manager/models/session.py @@ -1193,7 +1193,7 @@ class Meta: vfolder_mounts = graphene.List(lambda: graphene.String) occupying_slots = graphene.JSONString() occupied_slots = graphene.JSONString() # legacy - requested_slots = graphene.JSONString(description="Added in 24.03.0") + requested_slots = graphene.JSONString(description="Added in 24.03.0.") # statistics num_queries = BigInt() diff --git a/src/ai/backend/manager/models/storage.py b/src/ai/backend/manager/models/storage.py index 041edd14b9..14484e3b9e 100644 --- a/src/ai/backend/manager/models/storage.py +++ b/src/ai/backend/manager/models/storage.py @@ -211,9 +211,9 @@ class Meta: performance_metric = graphene.JSONString() usage = graphene.JSONString() proxy = graphene.String( - description="Added since 24.03.0. Name of the proxy which this volume belongs to." + description="Added in 24.03.0. Name of the proxy which this volume belongs to." ) - name = graphene.String(description="Added since 24.03.0. Name of the storage.") + name = graphene.String(description="Added in 24.03.0. Name of the storage.") async def resolve_hardware_metadata(self, info: graphene.ResolveInfo) -> HardwareMetadata: ctx: GraphQueryContext = info.context From 08ece4347ca17459ceadadb1d7c6246bbedba6ba Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Thu, 4 Apr 2024 15:10:54 +0900 Subject: [PATCH 05/24] update news fragment --- changes/1993.misc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changes/1993.misc.md b/changes/1993.misc.md index 2ea219cbc0..6ffc9eed11 100644 --- a/changes/1993.misc.md +++ b/changes/1993.misc.md @@ -1 +1 @@ -Correct a version notation of Resource policy GQL schema. \ No newline at end of file +Fix incorrect version notation of GQL Field. \ No newline at end of file From 068f2d8a688a9e22606a7e5bb2a12ef035e4f0cb Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Thu, 4 Apr 2024 06:13:05 +0000 Subject: [PATCH 06/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 42 +++++++++++------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index 130be8fbc0..b4679e1098 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -28,7 +28,7 @@ type Queries { domain_name: String is_active: Boolean - """Added since 24.03.0. Available values: GENERAL, MODEL_STORE""" + """Added in 24.03.0. Available values: GENERAL, MODEL_STORE""" type: [String] = ["GENERAL"] ): [Group] image(reference: String!, architecture: String = "x86_64"): Image @@ -351,7 +351,7 @@ type Group { integration_id: String resource_policy: String - """Added since 24.03.0.""" + """Added in 24.03.0.""" type: String scaling_groups: [String] } @@ -524,7 +524,7 @@ type ComputeSession implements Item { occupying_slots: JSONString occupied_slots: JSONString - """Added in 24.03.0""" + """Added in 24.03.0.""" requested_slots: JSONString num_queries: BigInt containers: [ComputeContainer] @@ -552,8 +552,8 @@ type KeyPairResourcePolicy { max_containers_per_session: Int idle_timeout: BigInt allowed_vfolder_hosts: JSONString - max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4") - max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") + max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4.") + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4.") max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") } @@ -619,10 +619,10 @@ type StorageVolume implements Item { performance_metric: JSONString usage: JSONString - """Added since 24.03.0. Name of the proxy which this volume belongs to.""" + """Added in 24.03.0. Name of the proxy which this volume belongs to.""" proxy: String - """Added since 24.03.0. Name of the storage.""" + """Added in 24.03.0. Name of the storage.""" name: String } @@ -725,9 +725,9 @@ type PredefinedAtomicPermission { type Endpoint implements Item { id: ID endpoint_id: UUID - image: String @deprecated(reason: "Deprecated since 23.09.9; use `image_object`") + image: String @deprecated(reason: "Deprecated since 23.09.9. use `image_object`") - """Added at 23.09.9""" + """Added in 23.09.9.""" image_object: ImageNode domain: String project: String @@ -736,19 +736,19 @@ type Endpoint implements Item { url: String model: UUID model_mount_destiation: String - created_user: UUID @deprecated(reason: "Deprecated since 23.09.8; use `created_user_id`") + created_user: UUID @deprecated(reason: "Deprecated since 23.09.8. use `created_user_id`") - """Added at 23.09.8""" + """Added in 23.09.8.""" created_user_email: String - """Added at 23.09.8""" + """Added in 23.09.8.""" created_user_id: UUID - session_owner: UUID @deprecated(reason: "Deprecated since 23.09.8; use `session_owner_id`") + session_owner: UUID @deprecated(reason: "Deprecated since 23.09.8. use `session_owner_id`") - """Added at 23.09.8""" + """Added in 23.09.8.""" session_owner_email: String - """Added at 23.09.8""" + """Added in 23.09.8.""" session_owner_id: UUID tag: String startup_command: String @@ -1077,7 +1077,7 @@ type CreateGroup { } input GroupInput { - """Added since 24.03.0. Available values: GENERAL, MODEL_STORE""" + """Added in 24.03.0. Available values: GENERAL, MODEL_STORE""" type: String = "GENERAL" description: String = "" is_active: Boolean = true @@ -1321,8 +1321,8 @@ input CreateKeyPairResourcePolicyInput { max_containers_per_session: Int! idle_timeout: BigInt! allowed_vfolder_hosts: JSONString - max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4") - max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") + max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4.") + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4.") max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") } @@ -1340,8 +1340,8 @@ input ModifyKeyPairResourcePolicyInput { max_containers_per_session: Int idle_timeout: BigInt allowed_vfolder_hosts: JSONString - max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4") - max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4") + max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4.") + max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4.") max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") } @@ -1582,7 +1582,7 @@ type ModifyEndpoint { ok: Boolean msg: String - """Added at 23.09.8""" + """Added in 23.09.8.""" endpoint: Endpoint } From f66c2777c6d7779ccdb81d008612b428eb1515b4 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Thu, 4 Apr 2024 17:21:34 +0900 Subject: [PATCH 07/24] replace 24.03.0 version notation to backport target version --- .../backend/manager/models/resource_policy.py | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index 3f21f4f747..4af6119516 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -431,10 +431,10 @@ class UserResourcePolicy(graphene.ObjectType): name = graphene.String(required=True) created_at = GQLDateTime(required=True) max_vfolder_count = graphene.Int( - description="Added in 24.03.0. Limitation of the number of user vfolders." + description="Added in 23.09.6. Limitation of the number of user vfolders." ) max_quota_scope_size = BigInt( - description="Added in 24.03.0. Limitation of the quota size of user vfolders." + description="Added in 23.09.2. Limitation of the quota size of user vfolders." ) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") max_session_count_per_model_session = graphene.Int( @@ -513,26 +513,26 @@ async def batch_load_by_user( class CreateUserResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 24.03.0. Limitation of the number of user vfolders." + description="Added in 23.09.6. Limitation of the number of user vfolders." ) max_quota_scope_size = BigInt( - description="Added in 24.03.0. Limitation of the quota size of user vfolders." + description="Added in 23.09.2. Limitation of the quota size of user vfolders." ) max_session_count_per_model_session = graphene.Int( - description="Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of." + description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." ) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") class ModifyUserResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 24.03.0. Limitation of the number of user vfolders." + description="Added in 23.09.6. Limitation of the number of user vfolders." ) max_quota_scope_size = BigInt( - description="Added in 24.03.0. Limitation of the quota size of user vfolders." + description="Added in 23.09.2. Limitation of the quota size of user vfolders." ) max_session_count_per_model_session = graphene.Int( - description="Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of." + description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." ) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") @@ -636,10 +636,10 @@ class ProjectResourcePolicy(graphene.ObjectType): name = graphene.String(required=True) created_at = GQLDateTime(required=True) max_vfolder_count = graphene.Int( - description="Added in 24.03.0. Limitation of the number of project vfolders." + description="Added in 23.09.6. Limitation of the number of project vfolders." ) max_quota_scope_size = BigInt( - description="Added in 24.03.0. Limitation of the quota size of project vfolders." + description="Added in 23.09.2. Limitation of the quota size of project vfolders." ) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") @@ -715,20 +715,20 @@ async def batch_load_by_project( class CreateProjectResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 24.03.0. Limitation of the number of project vfolders." + description="Added in 23.09.6. Limitation of the number of project vfolders." ) max_quota_scope_size = BigInt( - description="Added in 24.03.0. Limitation of the quota size of project vfolders." + description="Added in 23.09.2. Limitation of the quota size of project vfolders." ) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") class ModifyProjectResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 24.03.0. Limitation of the number of project vfolders." + description="Added in 23.09.6. Limitation of the number of project vfolders." ) max_quota_scope_size = BigInt( - description="Added in 24.03.0. Limitation of the quota size of project vfolders." + description="Added in 23.09.2. Limitation of the quota size of project vfolders." ) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") From 96a41d81eec3988e1356c793b52f8b199cc6265e Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Thu, 4 Apr 2024 08:25:33 +0000 Subject: [PATCH 08/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 28 +++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index b4679e1098..c949a005be 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -562,10 +562,10 @@ type UserResourcePolicy { name: String! created_at: DateTime! - """Added in 24.03.0. Limitation of the number of user vfolders.""" + """Added in 23.09.6. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added in 24.03.0. Limitation of the quota size of user vfolders.""" + """Added in 23.09.2. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") @@ -580,10 +580,10 @@ type ProjectResourcePolicy { name: String! created_at: DateTime! - """Added in 24.03.0. Limitation of the number of project vfolders.""" + """Added in 23.09.6. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added in 24.03.0. Limitation of the quota size of project vfolders.""" + """Added in 23.09.2. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } @@ -1357,14 +1357,14 @@ type CreateUserResourcePolicy { } input CreateUserResourcePolicyInput { - """Added in 24.03.0. Limitation of the number of user vfolders.""" + """Added in 23.09.6. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added in 24.03.0. Limitation of the quota size of user vfolders.""" + """Added in 23.09.2. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt """ - Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of. + Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") @@ -1376,14 +1376,14 @@ type ModifyUserResourcePolicy { } input ModifyUserResourcePolicyInput { - """Added in 24.03.0. Limitation of the number of user vfolders.""" + """Added in 23.09.6. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added in 24.03.0. Limitation of the quota size of user vfolders.""" + """Added in 23.09.2. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt """ - Added in 24.03.0. Maximum available number of sessions per single model service which the user is in charge of. + Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") @@ -1401,10 +1401,10 @@ type CreateProjectResourcePolicy { } input CreateProjectResourcePolicyInput { - """Added in 24.03.0. Limitation of the number of project vfolders.""" + """Added in 23.09.6. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added in 24.03.0. Limitation of the quota size of project vfolders.""" + """Added in 23.09.2. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } @@ -1415,10 +1415,10 @@ type ModifyProjectResourcePolicy { } input ModifyProjectResourcePolicyInput { - """Added in 24.03.0. Limitation of the number of project vfolders.""" + """Added in 23.09.6. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added in 24.03.0. Limitation of the quota size of project vfolders.""" + """Added in 23.09.2. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } From 3b927377631c4242fbf3cc1af488798abe875512 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Fri, 5 Apr 2024 01:47:02 +0000 Subject: [PATCH 09/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index 6020bf1895..8ac3bd4fee 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -395,7 +395,7 @@ type Group { """Added in 24.03.0.""" type: String - """Added since 24.03.0.""" + """Added in 24.03.0.""" container_registry: JSONString scaling_groups: [String] } @@ -1401,7 +1401,7 @@ input CreateUserResourcePolicyInput { max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") """ - Added since 24.03.0. Maximum available number of customized images one can publish to. + Added in 24.03.0. Maximum available number of customized images one can publish to. """ max_customized_image_count: Int } @@ -1422,10 +1422,9 @@ input ModifyUserResourcePolicyInput { Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int - max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") """ - Added since 24.03.0. Maximum available number of customized images one can publish to. + Added in 24.03.0. Maximum available number of customized images one can publish to. """ max_customized_image_count: Int } From 4e66e2c9de524f4d582cc8e3a46a6b5d44746ced Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Fri, 5 Apr 2024 11:06:59 +0900 Subject: [PATCH 10/24] correct new 'Added since' descriptons to 'Added in' --- src/ai/backend/manager/models/gql.py | 4 ++-- src/ai/backend/manager/models/group.py | 4 ++-- src/ai/backend/manager/models/image.py | 2 +- src/ai/backend/manager/models/kernel.py | 2 +- src/ai/backend/manager/models/resource_policy.py | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ai/backend/manager/models/gql.py b/src/ai/backend/manager/models/gql.py index 24fa6a33ce..39a7956dbe 100644 --- a/src/ai/backend/manager/models/gql.py +++ b/src/ai/backend/manager/models/gql.py @@ -203,7 +203,7 @@ class Mutations(graphene.ObjectType): preload_image = PreloadImage.Field() unload_image = UnloadImage.Field() modify_image = ModifyImage.Field() - forget_image_by_id = ForgetImageById.Field(description="Added since 24.03.0") + forget_image_by_id = ForgetImageById.Field(description="Added in 24.03.0.") forget_image = ForgetImage.Field() alias_image = AliasImage.Field() dealias_image = DealiasImage.Field() @@ -356,7 +356,7 @@ class Queries(graphene.ObjectType): is_operation=graphene.Boolean(), ) - customized_images = graphene.List(Image, description="Added since 24.03.0") + customized_images = graphene.List(Image, description="Added in 24.03.0.") user = graphene.Field( User, diff --git a/src/ai/backend/manager/models/group.py b/src/ai/backend/manager/models/group.py index 2b6e086738..34ccc54fc8 100644 --- a/src/ai/backend/manager/models/group.py +++ b/src/ai/backend/manager/models/group.py @@ -438,7 +438,7 @@ class GroupInput(graphene.InputObjectType): integration_id = graphene.String(required=False, default_value="") resource_policy = graphene.String(required=False, default_value="default") container_registry = graphene.JSONString( - required=False, default_value={}, description="Added since 24.03.0" + required=False, default_value={}, description="Added in 24.03.0." ) @@ -454,7 +454,7 @@ class ModifyGroupInput(graphene.InputObjectType): integration_id = graphene.String(required=False) resource_policy = graphene.String(required=False) container_registry = graphene.JSONString( - required=False, default_value={}, description="Added since 24.03.0" + required=False, default_value={}, description="Added in 24.03.0." ) diff --git a/src/ai/backend/manager/models/image.py b/src/ai/backend/manager/models/image.py index a0be02ed4d..8af8352484 100644 --- a/src/ai/backend/manager/models/image.py +++ b/src/ai/backend/manager/models/image.py @@ -833,7 +833,7 @@ async def _rescan_task(reporter: ProgressReporter) -> None: class ForgetImageById(graphene.Mutation): - """Added since 24.03.0.""" + """Added in 24.03.0.""" allowed_roles = ( UserRole.SUPERADMIN, diff --git a/src/ai/backend/manager/models/kernel.py b/src/ai/backend/manager/models/kernel.py index ddf44f60e7..aa7a6bd6aa 100644 --- a/src/ai/backend/manager/models/kernel.py +++ b/src/ai/backend/manager/models/kernel.py @@ -800,7 +800,7 @@ class Meta: # image image = graphene.String(description="Deprecated since 24.03.0; use image_object.name") - image_object = graphene.Field(ImageNode, description="Added since 24.03.0") + image_object = graphene.Field(ImageNode, description="Added in 24.03.0.") architecture = graphene.String() registry = graphene.String() diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index 3c50cdb8d6..9fc92b89da 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -448,7 +448,7 @@ class UserResourcePolicy(graphene.ObjectType): description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." ) max_customized_image_count = graphene.Int( - description="Added since 24.03.0. Maximum available number of customized images one can publish to." + description="Added in 24.03.0. Maximum available number of customized images one can publish to." ) @classmethod From dec363c51f03a3a49469b0b0e303496e8583b94e Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Fri, 5 Apr 2024 02:12:57 +0000 Subject: [PATCH 11/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index 8ac3bd4fee..3b543ebce8 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -34,7 +34,7 @@ type Queries { image(reference: String!, architecture: String = "x86_64"): Image images(is_installed: Boolean, is_operation: Boolean): [Image] - """Added since 24.03.0""" + """Added in 24.03.0.""" customized_images: [Image] user(domain_name: String, email: String): User user_from_uuid(domain_name: String, user_id: ID): User @@ -170,7 +170,7 @@ type ComputeContainer implements Item { """Deprecated since 24.03.0; use image_object.name""" image: String - """Added since 24.03.0""" + """Added in 24.03.0.""" image_object: ImageNode architecture: String registry: String @@ -602,7 +602,7 @@ type UserResourcePolicy { max_session_count_per_model_session: Int """ - Added since 24.03.0. Maximum available number of customized images one can publish to. + Added in 24.03.0. Maximum available number of customized images one can publish to. """ max_customized_image_count: Int } @@ -994,7 +994,7 @@ type Mutations { unload_image(references: [String]!, target_agents: [String]!): UnloadImage modify_image(architecture: String = "x86_64", props: ModifyImageInput!, target: String!): ModifyImage - """Added since 24.03.0""" + """Added in 24.03.0.""" forget_image_by_id(image_id: String!): ForgetImageById forget_image(architecture: String = "x86_64", reference: String!): ForgetImage alias_image(alias: String!, architecture: String = "x86_64", target: String!): AliasImage @@ -1106,7 +1106,7 @@ input GroupInput { integration_id: String = "" resource_policy: String = "default" - """Added since 24.03.0""" + """Added in 24.03.0.""" container_registry: JSONString = "{}" } @@ -1128,7 +1128,7 @@ input ModifyGroupInput { integration_id: String resource_policy: String - """Added since 24.03.0""" + """Added in 24.03.0.""" container_registry: JSONString = "{}" } @@ -1311,7 +1311,7 @@ input ResourceLimitInput { max: String } -"""Added since 24.03.0.""" +"""Added in 24.03.0.""" type ForgetImageById { ok: Boolean msg: String From 889bf8a0df705f8c7d6ed858a142cd83f1f937ae Mon Sep 17 00:00:00 2001 From: Sion Kang Date: Fri, 5 Apr 2024 14:28:06 +0900 Subject: [PATCH 12/24] ci: Modified to operate even in deprecation reason changed situations --- .github/workflows/update-api-schema.yml | 4 ++-- custom-rule.js => gql-inspector-checker.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename custom-rule.js => gql-inspector-checker.js (98%) diff --git a/.github/workflows/update-api-schema.yml b/.github/workflows/update-api-schema.yml index a360f79b49..a651887074 100644 --- a/.github/workflows/update-api-schema.yml +++ b/.github/workflows/update-api-schema.yml @@ -58,7 +58,7 @@ jobs: echo "name=$author_name" >> $GITHUB_OUTPUT echo "email=$author_email" >> $GITHUB_OUTPUT - name: Make commit message for changing change log file - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@v5 with: commit_author: ${{ steps.get_author_info.outputs.name }} <${{ steps.get_author_info.outputs.email }}> commit_message: 'chore: update GraphQL schema dump' @@ -73,4 +73,4 @@ jobs: with: schema: 'main:src/ai/backend/manager/api/schema.graphql' rules: | - custom-rule.js + gql-inspector-checker.js diff --git a/custom-rule.js b/gql-inspector-checker.js similarity index 98% rename from custom-rule.js rename to gql-inspector-checker.js index dc4cd2eee9..0ec94d3f4f 100644 --- a/custom-rule.js +++ b/gql-inspector-checker.js @@ -10,7 +10,7 @@ module.exports = (props) => { change.criticality.level !== "BREAKING" ) { const newReason = - change.meta.addedDeprecationReason || change.meta.newDeprecationReason; + change.meta.addedDeprecationReason ?? change.meta.newDeprecationReason; const regex = /Deprecated since (\d{2}\.\d{2})/; if (!newReason.match(regex)) { change.criticality.level = "BREAKING"; From 98e7d82fdae6566b78d39ffe243edf21663bced5 Mon Sep 17 00:00:00 2001 From: Sion Kang Date: Fri, 5 Apr 2024 14:50:38 +0900 Subject: [PATCH 13/24] Update gql-inspector-checker.js --- gql-inspector-checker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gql-inspector-checker.js b/gql-inspector-checker.js index 0ec94d3f4f..1c9e20119b 100644 --- a/gql-inspector-checker.js +++ b/gql-inspector-checker.js @@ -10,7 +10,7 @@ module.exports = (props) => { change.criticality.level !== "BREAKING" ) { const newReason = - change.meta.addedDeprecationReason ?? change.meta.newDeprecationReason; + change.meta?.addedDeprecationReason || change.meta.newDeprecationReason; const regex = /Deprecated since (\d{2}\.\d{2})/; if (!newReason.match(regex)) { change.criticality.level = "BREAKING"; From 8749bf0524c1a1106ff1050a1392f3f7ce9213e5 Mon Sep 17 00:00:00 2001 From: Sion Kang Date: Fri, 5 Apr 2024 15:04:31 +0900 Subject: [PATCH 14/24] ci: The specification of changedReason has changed --- gql-inspector-checker.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gql-inspector-checker.js b/gql-inspector-checker.js index 1c9e20119b..2b9f5d38be 100644 --- a/gql-inspector-checker.js +++ b/gql-inspector-checker.js @@ -11,13 +11,13 @@ module.exports = (props) => { ) { const newReason = change.meta?.addedDeprecationReason || change.meta.newDeprecationReason; - const regex = /Deprecated since (\d{2}\.\d{2})/; + const regex = /Deprecated since (\d{2}\.\d{2}.\d{1})/; if (!newReason.match(regex)) { change.criticality.level = "BREAKING"; change.criticality.reason = - 'Deprecation reason must include a version number in the format "Deprecated since XX.XX"'; + 'Deprecation reason must include a version number in the format "Deprecated since XX.XX.X"'; change.message = - 'Deprecation reason must include a version number in the format "Deprecated since XX.XX", ' + + 'Deprecation reason must include a version number in the format "Deprecated since XX.XX.X", ' + change.message; } } else if ( @@ -28,12 +28,12 @@ module.exports = (props) => { const description = newSchema.getTypeMap()[typeName].getFields()[ fieldName ].astNode.description?.value; - if (!description || !description.match(/since (\d{2}\.\d{2})/)) { + if (!description || !description.match(/Added in (\d{2}\.\d{2}.\d{1})/)) { change.criticality.level = "BREAKING"; change.criticality.reason = - 'New fields must include a description with a version number in the format "since XX.XX"'; + 'New fields must include a description with a version number in the format "Added in XX.XX.X"'; change.message = - 'New fields must include a description with a version number in the format "XX.XX", ' + + 'New fields must include a description with a version number in the format "Added in XX.XX.X", ' + change.message; } } else if ( From b175ecf219709994fb4e131b1b241fb508c40482 Mon Sep 17 00:00:00 2001 From: Sion Kang Date: Fri, 5 Apr 2024 15:06:28 +0900 Subject: [PATCH 15/24] Update gql-inspector-checker.js --- gql-inspector-checker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gql-inspector-checker.js b/gql-inspector-checker.js index 2b9f5d38be..0c28293f52 100644 --- a/gql-inspector-checker.js +++ b/gql-inspector-checker.js @@ -10,7 +10,7 @@ module.exports = (props) => { change.criticality.level !== "BREAKING" ) { const newReason = - change.meta?.addedDeprecationReason || change.meta.newDeprecationReason; + change.meta?.addedDeprecationReason || change.meta?.newDeprecationReason; const regex = /Deprecated since (\d{2}\.\d{2}.\d{1})/; if (!newReason.match(regex)) { change.criticality.level = "BREAKING"; From 5051f3dcd05c80ed730defe0e18e76a1f9c7664c Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Fri, 5 Apr 2024 15:29:49 +0900 Subject: [PATCH 16/24] fix gql inspector checker script --- gql-inspector-checker.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/gql-inspector-checker.js b/gql-inspector-checker.js index 0c28293f52..a60e616d25 100644 --- a/gql-inspector-checker.js +++ b/gql-inspector-checker.js @@ -1,7 +1,8 @@ module.exports = (props) => { const { changes, newSchema, oldSchema } = props; return changes.map((change) => { - // console.log(change); + const deprecateNotationRegex = /Deprecated since (\d{2}\.\d{2}.\d{1})/; + const addNotationRegex = /Added in (\d{2}\.\d{2}.\d{1})/; if ( [ "FIELD_DEPRECATION_REASON_ADDED", @@ -10,14 +11,13 @@ module.exports = (props) => { change.criticality.level !== "BREAKING" ) { const newReason = - change.meta?.addedDeprecationReason || change.meta?.newDeprecationReason; - const regex = /Deprecated since (\d{2}\.\d{2}.\d{1})/; - if (!newReason.match(regex)) { + change.meta?.addedDeprecationReason ?? change.meta?.newDeprecationReason; + if (newReason && !newReason.match(deprecateNotationRegex)) { change.criticality.level = "BREAKING"; change.criticality.reason = - 'Deprecation reason must include a version number in the format "Deprecated since XX.XX.X"'; + 'Deprecation reason must include a version number in the format "Deprecated since XX.XX.X."'; change.message = - 'Deprecation reason must include a version number in the format "Deprecated since XX.XX.X", ' + + 'Deprecation reason must include a version number in the format "Deprecated since XX.XX.X.", ' + change.message; } } else if ( @@ -28,12 +28,12 @@ module.exports = (props) => { const description = newSchema.getTypeMap()[typeName].getFields()[ fieldName ].astNode.description?.value; - if (!description || !description.match(/Added in (\d{2}\.\d{2}.\d{1})/)) { + if (!description || (description && !description.match(addNotationRegex))) { change.criticality.level = "BREAKING"; change.criticality.reason = - 'New fields must include a description with a version number in the format "Added in XX.XX.X"'; + 'New fields must include a description with a version number in the format "Added in XX.XX.X."'; change.message = - 'New fields must include a description with a version number in the format "Added in XX.XX.X", ' + + 'New fields must include a description with a version number in the format "Added in XX.XX.X.", ' + change.message; } } else if ( @@ -43,12 +43,12 @@ module.exports = (props) => { const typeName = change.path.split(".")[0]; const description = newSchema.getTypeMap()[typeName].astNode.description?.value; - if (!description || !description.match(/since (\d{2}\.\d{2})/)) { + if (!description || (description && !description.match(addNotationRegex))) { change.criticality.level = "BREAKING"; change.criticality.reason = - 'New types must include a description with a version number in the format "since XX.XX"'; + 'New types must include a description with a version number in the format "Added in XX.XX.X."'; change.message = - 'New types must include a description with a version number in the format "XX.XX", ' + + 'New types must include a description with a version number in the format "Added in XX.XX.X.", ' + change.message; } } else if ( @@ -63,12 +63,12 @@ module.exports = (props) => { (arg) => arg.name === argumentName )?.description; - if (!description || !description.match(/since (\d{2}\.\d{2})/)) { + if (!description || (description && !description.match(addNotationRegex))) { change.criticality.level = "BREAKING"; change.criticality.reason = - 'New arguments must include a description with a version number in the format "since XX.XX"'; + 'New arguments must include a description with a version number in the format "Added in XX.XX.X."'; change.message = - 'New arguments must include a description with a version number in the format "XX.XX", ' + + 'New arguments must include a description with a version number in the format "XX.XX.X.", ' + change.message; } } From 300ca9dcd6a2db3ec43297bc250acfe76bd78a7f Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Fri, 24 May 2024 10:50:35 +0000 Subject: [PATCH 17/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index 10aca98dee..cdf7e9732c 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -596,7 +596,7 @@ type KeyPairResourcePolicy { max_vfolder_count: Int @deprecated(reason: "Deprecated since 23.09.4.") max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4.") max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") - + """Added in 24.03.4.""" max_pending_session_count: Int @@ -1419,9 +1419,6 @@ input ModifyKeyPairResourcePolicyInput { max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4.") max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") - """Added in 24.03.4.""" - max_pending_session_count: Int - """Added in 24.03.4.""" max_pending_session_resource_slots: JSONString } From 25664d6efd717726313674893b9dc38135ae1408 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Sat, 25 May 2024 13:34:54 +0900 Subject: [PATCH 18/24] fix versions fields added --- .../backend/manager/models/resource_policy.py | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index cfc3f962cd..756873917e 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -464,11 +464,11 @@ class UserResourcePolicy(graphene.ObjectType): name = graphene.String(required=True) created_at = GQLDateTime(required=True) max_vfolder_count = graphene.Int( - description="Added in 23.09.6. Limitation of the number of user vfolders." - ) + description="Added in 24.03.1. Limitation of the number of user vfolders." + ) # Added in (24.03.1, 23.09.6) max_quota_scope_size = BigInt( - description="Added in 23.09.2. Limitation of the quota size of user vfolders." - ) + description="Added in 24.03.1. Limitation of the quota size of user vfolders." + ) # Added in (24.03.1, 23.09.2) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") max_session_count_per_model_session = graphene.Int( description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." @@ -550,14 +550,14 @@ async def batch_load_by_user( class CreateUserResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 23.09.6. Limitation of the number of user vfolders." - ) + description="Added in 24.03.1. Limitation of the number of user vfolders." + ) # Added in (24.03.1, 23.09.6) max_quota_scope_size = BigInt( - description="Added in 23.09.2. Limitation of the quota size of user vfolders." - ) + description="Added in 24.03.1. Limitation of the quota size of user vfolders." + ) # Added in (24.03.1, 23.09.2) max_session_count_per_model_session = graphene.Int( - description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." - ) + description="Added in 24.03.1. Maximum available number of sessions per single model service which the user is in charge of." + ) # Added in (24.03.1, 23.09.10) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") max_customized_image_count = graphene.Int( description="Added in 24.03.0. Maximum available number of customized images one can publish to." @@ -566,14 +566,14 @@ class CreateUserResourcePolicyInput(graphene.InputObjectType): class ModifyUserResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 23.09.6. Limitation of the number of user vfolders." - ) + description="Added in 24.03.1. Limitation of the number of user vfolders." + ) # Added in (24.03.1, 23.09.6) max_quota_scope_size = BigInt( - description="Added in 23.09.2. Limitation of the quota size of user vfolders." - ) + description="Added in 24.03.1. Limitation of the quota size of user vfolders." + ) # Added in (24.03.1, 23.09.2) max_session_count_per_model_session = graphene.Int( - description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." - ) + description="Added in 24.03.1. Maximum available number of sessions per single model service which the user is in charge of." + ) # Added in (24.03.1, 23.09.10) max_customized_image_count = graphene.Int( description="Added in 24.03.0. Maximum available number of customized images one can publish to." ) @@ -680,11 +680,11 @@ class ProjectResourcePolicy(graphene.ObjectType): name = graphene.String(required=True) created_at = GQLDateTime(required=True) max_vfolder_count = graphene.Int( - description="Added in 23.09.6. Limitation of the number of project vfolders." - ) + description="Added in 24.03.1. Limitation of the number of project vfolders." + ) # Added in (24.03.1, 23.09.6) max_quota_scope_size = BigInt( - description="Added in 23.09.2. Limitation of the quota size of project vfolders." - ) + description="Added in 24.03.1. Limitation of the quota size of project vfolders." + ) # Added in (24.03.1, 23.09.2) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") @classmethod @@ -759,11 +759,11 @@ async def batch_load_by_project( class CreateProjectResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 23.09.6. Limitation of the number of project vfolders." - ) + description="Added in 24.03.1. Limitation of the number of project vfolders." + ) # Added in (24.03.1, 23.09.6) max_quota_scope_size = BigInt( - description="Added in 23.09.2. Limitation of the quota size of project vfolders." - ) + description="Added in 24.03.1. Limitation of the quota size of project vfolders." + ) # Added in (24.03.1, 23.09.2) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") From f4b44a9e2a94789df483eefb27980a88c5d64efa Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Sat, 25 May 2024 04:37:39 +0000 Subject: [PATCH 19/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index cdf7e9732c..cfbfa3abe9 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -609,10 +609,10 @@ type UserResourcePolicy { name: String! created_at: DateTime! - """Added in 23.09.6. Limitation of the number of user vfolders.""" + """Added in 24.03.1. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added in 23.09.2. Limitation of the quota size of user vfolders.""" + """Added in 24.03.1. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") @@ -632,10 +632,10 @@ type ProjectResourcePolicy { name: String! created_at: DateTime! - """Added in 23.09.6. Limitation of the number of project vfolders.""" + """Added in 24.03.1. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added in 23.09.2. Limitation of the quota size of project vfolders.""" + """Added in 24.03.1. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } @@ -1435,14 +1435,14 @@ type CreateUserResourcePolicy { } input CreateUserResourcePolicyInput { - """Added in 23.09.6. Limitation of the number of user vfolders.""" + """Added in 24.03.1. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added in 23.09.2. Limitation of the quota size of user vfolders.""" + """Added in 24.03.1. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt """ - Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of. + Added in 24.03.1. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") @@ -1459,14 +1459,14 @@ type ModifyUserResourcePolicy { } input ModifyUserResourcePolicyInput { - """Added in 23.09.6. Limitation of the number of user vfolders.""" + """Added in 24.03.1. Limitation of the number of user vfolders.""" max_vfolder_count: Int - """Added in 23.09.2. Limitation of the quota size of user vfolders.""" + """Added in 24.03.1. Limitation of the quota size of user vfolders.""" max_quota_scope_size: BigInt """ - Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of. + Added in 24.03.1. Maximum available number of sessions per single model service which the user is in charge of. """ max_session_count_per_model_session: Int @@ -1488,10 +1488,10 @@ type CreateProjectResourcePolicy { } input CreateProjectResourcePolicyInput { - """Added in 23.09.6. Limitation of the number of project vfolders.""" + """Added in 24.03.1. Limitation of the number of project vfolders.""" max_vfolder_count: Int - """Added in 23.09.2. Limitation of the quota size of project vfolders.""" + """Added in 24.03.1. Limitation of the quota size of project vfolders.""" max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } From 3e0589f9dc1d093708598d7c83c24bd71e1cccd2 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Sat, 25 May 2024 14:26:35 +0900 Subject: [PATCH 20/24] add missing field ModifyKeyPairResourcePolicyInput.max_pending_session_count --- src/ai/backend/manager/models/resource_policy.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index 756873917e..37cc5b8689 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -336,6 +336,7 @@ class ModifyKeyPairResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int(required=False, deprecation_reason="Deprecated since 23.09.4.") max_vfolder_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.4.") max_quota_scope_size = BigInt(required=False, deprecation_reason="Deprecated since 23.09.6.") + max_pending_session_count = graphene.Int(description="Added in 24.03.4.") max_pending_session_resource_slots = graphene.JSONString(description="Added in 24.03.4.") From 49779e7fb3d6b7489ce63fc79d0757ae65947ef8 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Sat, 25 May 2024 05:31:38 +0000 Subject: [PATCH 21/24] chore: update GraphQL schema dump --- src/ai/backend/manager/api/schema.graphql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index cfbfa3abe9..ad592f83c6 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -1419,6 +1419,9 @@ input ModifyKeyPairResourcePolicyInput { max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.4.") max_quota_scope_size: BigInt @deprecated(reason: "Deprecated since 23.09.6.") + """Added in 24.03.4.""" + max_pending_session_count: Int + """Added in 24.03.4.""" max_pending_session_resource_slots: JSONString } From da322712342030bc48bbea5077e09b6633470b6c Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Mon, 27 May 2024 14:23:44 +0900 Subject: [PATCH 22/24] fix max_session_count_per_model_session version --- src/ai/backend/manager/models/resource_policy.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index 37cc5b8689..5e78be5418 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -557,8 +557,8 @@ class CreateUserResourcePolicyInput(graphene.InputObjectType): description="Added in 24.03.1. Limitation of the quota size of user vfolders." ) # Added in (24.03.1, 23.09.2) max_session_count_per_model_session = graphene.Int( - description="Added in 24.03.1. Maximum available number of sessions per single model service which the user is in charge of." - ) # Added in (24.03.1, 23.09.10) + description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." + ) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") max_customized_image_count = graphene.Int( description="Added in 24.03.0. Maximum available number of customized images one can publish to." @@ -573,8 +573,8 @@ class ModifyUserResourcePolicyInput(graphene.InputObjectType): description="Added in 24.03.1. Limitation of the quota size of user vfolders." ) # Added in (24.03.1, 23.09.2) max_session_count_per_model_session = graphene.Int( - description="Added in 24.03.1. Maximum available number of sessions per single model service which the user is in charge of." - ) # Added in (24.03.1, 23.09.10) + description="Added in 23.09.10. Maximum available number of sessions per single model service which the user is in charge of." + ) max_customized_image_count = graphene.Int( description="Added in 24.03.0. Maximum available number of customized images one can publish to." ) From 248d8da9e35c2bd94aec25709ddc723a8ee7af37 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Mon, 27 May 2024 14:32:07 +0900 Subject: [PATCH 23/24] correct ModifyProjectResourcePolicyInput field versions --- src/ai/backend/manager/models/resource_policy.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ai/backend/manager/models/resource_policy.py b/src/ai/backend/manager/models/resource_policy.py index 5e78be5418..867e5dc550 100644 --- a/src/ai/backend/manager/models/resource_policy.py +++ b/src/ai/backend/manager/models/resource_policy.py @@ -770,11 +770,11 @@ class CreateProjectResourcePolicyInput(graphene.InputObjectType): class ModifyProjectResourcePolicyInput(graphene.InputObjectType): max_vfolder_count = graphene.Int( - description="Added in 23.09.6. Limitation of the number of project vfolders." - ) + description="Added in 24.03.1. Limitation of the number of project vfolders." + ) # Added in (24.03.1, 23.09.6) max_quota_scope_size = BigInt( - description="Added in 23.09.2. Limitation of the quota size of project vfolders." - ) + description="Added in 24.03.1. Limitation of the quota size of project vfolders." + ) # Added in (24.03.1, 23.09.2) max_vfolder_size = BigInt(deprecation_reason="Deprecated since 23.09.2.") From 39538ead6a25561c11b0df99f963ee1837c85309 Mon Sep 17 00:00:00 2001 From: Sanghun Lee Date: Mon, 27 May 2024 14:34:10 +0900 Subject: [PATCH 24/24] add comments to schema.graphql --- src/ai/backend/manager/api/schema.graphql | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ai/backend/manager/api/schema.graphql b/src/ai/backend/manager/api/schema.graphql index cfbfa3abe9..cc82335081 100644 --- a/src/ai/backend/manager/api/schema.graphql +++ b/src/ai/backend/manager/api/schema.graphql @@ -610,9 +610,11 @@ type UserResourcePolicy { created_at: DateTime! """Added in 24.03.1. Limitation of the number of user vfolders.""" + # Added in (24.03.1, 23.09.6) max_vfolder_count: Int """Added in 24.03.1. Limitation of the quota size of user vfolders.""" + # Added in (24.03.1, 23.09.2) max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") @@ -633,9 +635,11 @@ type ProjectResourcePolicy { created_at: DateTime! """Added in 24.03.1. Limitation of the number of project vfolders.""" + # Added in (24.03.1, 23.09.6) max_vfolder_count: Int """Added in 24.03.1. Limitation of the quota size of project vfolders.""" + # Added in (24.03.1, 23.09.2) max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } @@ -1436,9 +1440,11 @@ type CreateUserResourcePolicy { input CreateUserResourcePolicyInput { """Added in 24.03.1. Limitation of the number of user vfolders.""" + # Added in (24.03.1, 23.09.6) max_vfolder_count: Int """Added in 24.03.1. Limitation of the quota size of user vfolders.""" + # Added in (24.03.1, 23.09.2) max_quota_scope_size: BigInt """ @@ -1460,9 +1466,11 @@ type ModifyUserResourcePolicy { input ModifyUserResourcePolicyInput { """Added in 24.03.1. Limitation of the number of user vfolders.""" + # Added in (24.03.1, 23.09.6) max_vfolder_count: Int """Added in 24.03.1. Limitation of the quota size of user vfolders.""" + # Added in (24.03.1, 23.09.2) max_quota_scope_size: BigInt """ @@ -1489,9 +1497,11 @@ type CreateProjectResourcePolicy { input CreateProjectResourcePolicyInput { """Added in 24.03.1. Limitation of the number of project vfolders.""" + # Added in (24.03.1, 23.09.6) max_vfolder_count: Int """Added in 24.03.1. Limitation of the quota size of project vfolders.""" + # Added in (24.03.1, 23.09.2) max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") } @@ -1503,9 +1513,11 @@ type ModifyProjectResourcePolicy { input ModifyProjectResourcePolicyInput { """Added in 23.09.6. Limitation of the number of project vfolders.""" + # Added in (24.03.1, 23.09.6) max_vfolder_count: Int """Added in 23.09.2. Limitation of the quota size of project vfolders.""" + # Added in (24.03.1, 23.09.2) max_quota_scope_size: BigInt max_vfolder_size: BigInt @deprecated(reason: "Deprecated since 23.09.2.") }