@opensoha/contracts 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4273,6 +4273,56 @@ export interface paths {
4273
4273
  patch?: never;
4274
4274
  trace?: never;
4275
4275
  };
4276
+ "/access/permissions": {
4277
+ parameters: {
4278
+ query?: never;
4279
+ header?: never;
4280
+ path?: never;
4281
+ cookie?: never;
4282
+ };
4283
+ get: operations["getPermissionCatalog"];
4284
+ put?: never;
4285
+ post?: never;
4286
+ delete?: never;
4287
+ options?: never;
4288
+ head?: never;
4289
+ patch?: never;
4290
+ trace?: never;
4291
+ };
4292
+ "/access/roles": {
4293
+ parameters: {
4294
+ query?: never;
4295
+ header?: never;
4296
+ path?: never;
4297
+ cookie?: never;
4298
+ };
4299
+ get: operations["listAccessRoles"];
4300
+ put?: never;
4301
+ post: operations["createAccessRole"];
4302
+ delete?: never;
4303
+ options?: never;
4304
+ head?: never;
4305
+ patch?: never;
4306
+ trace?: never;
4307
+ };
4308
+ "/access/roles/{accessRoleID}": {
4309
+ parameters: {
4310
+ query?: never;
4311
+ header?: never;
4312
+ path: {
4313
+ accessRoleID: components["parameters"]["AccessRoleID"];
4314
+ };
4315
+ cookie?: never;
4316
+ };
4317
+ get: operations["getAccessRole"];
4318
+ put: operations["updateAccessRole"];
4319
+ post?: never;
4320
+ delete: operations["deleteAccessRole"];
4321
+ options?: never;
4322
+ head?: never;
4323
+ patch?: never;
4324
+ trace?: never;
4325
+ };
4276
4326
  "/identity/capabilities": {
4277
4327
  parameters: {
4278
4328
  query?: never;
@@ -5786,6 +5836,107 @@ export interface components {
5786
5836
  items: components["schemas"]["AnyValue"][];
5787
5837
  };
5788
5838
  /** @enum {string} */
5839
+ PermissionRiskLevel: "read" | "mutate" | "execute" | "high";
5840
+ /** @enum {string} */
5841
+ PermissionApprovalPolicy: "never" | "eligible" | "required";
5842
+ /** @enum {string} */
5843
+ PermissionStatus: "active" | "legacy";
5844
+ /** @enum {string} */
5845
+ PermissionScopeKind: "tenant" | "workspace" | "cluster" | "namespace" | "project" | "resource" | "owner";
5846
+ PermissionDefinition: {
5847
+ key: string;
5848
+ domain: string;
5849
+ resource: string;
5850
+ action: string;
5851
+ displayName: string;
5852
+ riskLevel: components["schemas"]["PermissionRiskLevel"];
5853
+ scopeKinds: components["schemas"]["PermissionScopeKind"][];
5854
+ approvalPolicy: components["schemas"]["PermissionApprovalPolicy"];
5855
+ status: components["schemas"]["PermissionStatus"];
5856
+ assignable: boolean;
5857
+ legacyAliases?: string[];
5858
+ /** @description Migration-only role-global action aliases accepted by this exact permission. */
5859
+ legacyCapabilities?: string[];
5860
+ replacedBy?: string[];
5861
+ };
5862
+ PermissionCatalog: {
5863
+ /** @constant */
5864
+ schemaVersion: "authorization.opensoha.io/v1";
5865
+ catalogVersion: string;
5866
+ contentHash: string;
5867
+ permissions: components["schemas"]["PermissionDefinition"][];
5868
+ };
5869
+ PermissionCatalogEnvelope: {
5870
+ data: components["schemas"]["PermissionCatalog"];
5871
+ };
5872
+ AccessRole: {
5873
+ id: string;
5874
+ name: string;
5875
+ scope: string;
5876
+ /**
5877
+ * @deprecated
5878
+ * @description Legacy role-global action aliases retained only for migration.
5879
+ */
5880
+ capabilities: string[];
5881
+ permissionKeys: string[];
5882
+ userCount: number;
5883
+ };
5884
+ AccessRoleInput: {
5885
+ id?: string;
5886
+ name: string;
5887
+ scope: string;
5888
+ /**
5889
+ * @deprecated
5890
+ * @description Legacy role-global action aliases; new role editors must send an empty array.
5891
+ */
5892
+ capabilities?: string[];
5893
+ permissionKeys: string[];
5894
+ };
5895
+ AccessRoleEnvelope: {
5896
+ data: components["schemas"]["AccessRole"];
5897
+ };
5898
+ AccessRoleListEnvelope: {
5899
+ items: components["schemas"]["AccessRole"][];
5900
+ };
5901
+ AccessRoleDeleteResult: {
5902
+ /** @constant */
5903
+ status: "ok";
5904
+ };
5905
+ /** @enum {string} */
5906
+ AuthorizationDecisionStatus: "allow" | "deny" | "approval_required";
5907
+ AuthorizationResource: {
5908
+ type: string;
5909
+ id?: string;
5910
+ tenantId?: string;
5911
+ workspaceId?: string;
5912
+ clusterId?: string;
5913
+ namespace?: string;
5914
+ projectId?: string;
5915
+ owner?: string;
5916
+ labels?: {
5917
+ [key: string]: string;
5918
+ };
5919
+ };
5920
+ AuthorizationEffectiveScope: {
5921
+ tenantIds?: string[];
5922
+ workspaceIds?: string[];
5923
+ clusterIds?: string[];
5924
+ namespaces?: string[];
5925
+ projectIds?: string[];
5926
+ resourceKinds?: string[];
5927
+ labelSelector?: string;
5928
+ };
5929
+ AuthorizationDecision: {
5930
+ status: components["schemas"]["AuthorizationDecisionStatus"];
5931
+ permissionKey: string;
5932
+ action: string;
5933
+ resource: components["schemas"]["AuthorizationResource"];
5934
+ effectiveScope?: components["schemas"]["AuthorizationEffectiveScope"];
5935
+ reasonCode: string;
5936
+ policyVersion: string;
5937
+ allowedActions?: string[];
5938
+ };
5939
+ /** @enum {string} */
5789
5940
  ComputeDomain: "virtualization" | "container_runtime" | "agent";
5790
5941
  /** @enum {string} */
5791
5942
  ComputeProviderDomain: "virtualization" | "container_runtime";
@@ -11737,6 +11888,7 @@ export interface components {
11737
11888
  };
11738
11889
  };
11739
11890
  parameters: {
11891
+ AccessRoleID: string;
11740
11892
  IdentityApplicationID: string;
11741
11893
  IdentityProviderID: string;
11742
11894
  IdentityPolicyID: string;
@@ -12000,6 +12152,22 @@ export type RuntimeConfigRollbackRequest = components['schemas']['RuntimeConfigR
12000
12152
  export type GenericObject = components['schemas']['GenericObject'];
12001
12153
  export type GenericDataEnvelope = components['schemas']['GenericDataEnvelope'];
12002
12154
  export type GenericItemsEnvelope = components['schemas']['GenericItemsEnvelope'];
12155
+ export type PermissionRiskLevel = components['schemas']['PermissionRiskLevel'];
12156
+ export type PermissionApprovalPolicy = components['schemas']['PermissionApprovalPolicy'];
12157
+ export type PermissionStatus = components['schemas']['PermissionStatus'];
12158
+ export type PermissionScopeKind = components['schemas']['PermissionScopeKind'];
12159
+ export type PermissionDefinition = components['schemas']['PermissionDefinition'];
12160
+ export type PermissionCatalog = components['schemas']['PermissionCatalog'];
12161
+ export type PermissionCatalogEnvelope = components['schemas']['PermissionCatalogEnvelope'];
12162
+ export type AccessRole = components['schemas']['AccessRole'];
12163
+ export type AccessRoleInput = components['schemas']['AccessRoleInput'];
12164
+ export type AccessRoleEnvelope = components['schemas']['AccessRoleEnvelope'];
12165
+ export type AccessRoleListEnvelope = components['schemas']['AccessRoleListEnvelope'];
12166
+ export type AccessRoleDeleteResult = components['schemas']['AccessRoleDeleteResult'];
12167
+ export type AuthorizationDecisionStatus = components['schemas']['AuthorizationDecisionStatus'];
12168
+ export type AuthorizationResource = components['schemas']['AuthorizationResource'];
12169
+ export type AuthorizationEffectiveScope = components['schemas']['AuthorizationEffectiveScope'];
12170
+ export type AuthorizationDecision = components['schemas']['AuthorizationDecision'];
12003
12171
  export type ComputeDomain = components['schemas']['ComputeDomain'];
12004
12172
  export type ComputeProviderDomain = components['schemas']['ComputeProviderDomain'];
12005
12173
  export type ComputeTaskDomain = components['schemas']['ComputeTaskDomain'];
@@ -12720,6 +12888,7 @@ export type DirectoryEmploymentStatus = components['schemas']['DirectoryEmployme
12720
12888
  export type ResponseIdentityError = components['responses']['IdentityError'];
12721
12889
  export type ResponseError = components['responses']['Error'];
12722
12890
  export type ResponseComputeError = components['responses']['ComputeError'];
12891
+ export type ParameterAccessRoleId = components['parameters']['AccessRoleID'];
12723
12892
  export type ParameterIdentityApplicationId = components['parameters']['IdentityApplicationID'];
12724
12893
  export type ParameterIdentityProviderId = components['parameters']['IdentityProviderID'];
12725
12894
  export type ParameterIdentityPolicyId = components['parameters']['IdentityPolicyID'];
@@ -21504,6 +21673,157 @@ export interface operations {
21504
21673
  403: components["responses"]["Error"];
21505
21674
  };
21506
21675
  };
21676
+ getPermissionCatalog: {
21677
+ parameters: {
21678
+ query?: never;
21679
+ header?: never;
21680
+ path?: never;
21681
+ cookie?: never;
21682
+ };
21683
+ requestBody?: never;
21684
+ responses: {
21685
+ /** @description Canonical permission definitions and compatibility metadata. */
21686
+ 200: {
21687
+ headers: {
21688
+ [name: string]: unknown;
21689
+ };
21690
+ content: {
21691
+ "application/json": components["schemas"]["PermissionCatalogEnvelope"];
21692
+ };
21693
+ };
21694
+ 401: components["responses"]["Error"];
21695
+ 403: components["responses"]["Error"];
21696
+ };
21697
+ };
21698
+ listAccessRoles: {
21699
+ parameters: {
21700
+ query?: never;
21701
+ header?: never;
21702
+ path?: never;
21703
+ cookie?: never;
21704
+ };
21705
+ requestBody?: never;
21706
+ responses: {
21707
+ /** @description Access roles. */
21708
+ 200: {
21709
+ headers: {
21710
+ [name: string]: unknown;
21711
+ };
21712
+ content: {
21713
+ "application/json": components["schemas"]["AccessRoleListEnvelope"];
21714
+ };
21715
+ };
21716
+ 401: components["responses"]["Error"];
21717
+ 403: components["responses"]["Error"];
21718
+ };
21719
+ };
21720
+ createAccessRole: {
21721
+ parameters: {
21722
+ query?: never;
21723
+ header?: never;
21724
+ path?: never;
21725
+ cookie?: never;
21726
+ };
21727
+ requestBody: {
21728
+ content: {
21729
+ "application/json": components["schemas"]["AccessRoleInput"];
21730
+ };
21731
+ };
21732
+ responses: {
21733
+ /** @description Created access role. */
21734
+ 201: {
21735
+ headers: {
21736
+ [name: string]: unknown;
21737
+ };
21738
+ content: {
21739
+ "application/json": components["schemas"]["AccessRoleEnvelope"];
21740
+ };
21741
+ };
21742
+ 400: components["responses"]["Error"];
21743
+ 401: components["responses"]["Error"];
21744
+ 403: components["responses"]["Error"];
21745
+ };
21746
+ };
21747
+ getAccessRole: {
21748
+ parameters: {
21749
+ query?: never;
21750
+ header?: never;
21751
+ path: {
21752
+ accessRoleID: components["parameters"]["AccessRoleID"];
21753
+ };
21754
+ cookie?: never;
21755
+ };
21756
+ requestBody?: never;
21757
+ responses: {
21758
+ /** @description Access role detail. */
21759
+ 200: {
21760
+ headers: {
21761
+ [name: string]: unknown;
21762
+ };
21763
+ content: {
21764
+ "application/json": components["schemas"]["AccessRoleEnvelope"];
21765
+ };
21766
+ };
21767
+ 401: components["responses"]["Error"];
21768
+ 403: components["responses"]["Error"];
21769
+ 404: components["responses"]["Error"];
21770
+ };
21771
+ };
21772
+ updateAccessRole: {
21773
+ parameters: {
21774
+ query?: never;
21775
+ header?: never;
21776
+ path: {
21777
+ accessRoleID: components["parameters"]["AccessRoleID"];
21778
+ };
21779
+ cookie?: never;
21780
+ };
21781
+ requestBody: {
21782
+ content: {
21783
+ "application/json": components["schemas"]["AccessRoleInput"];
21784
+ };
21785
+ };
21786
+ responses: {
21787
+ /** @description Updated access role. */
21788
+ 200: {
21789
+ headers: {
21790
+ [name: string]: unknown;
21791
+ };
21792
+ content: {
21793
+ "application/json": components["schemas"]["AccessRoleEnvelope"];
21794
+ };
21795
+ };
21796
+ 400: components["responses"]["Error"];
21797
+ 401: components["responses"]["Error"];
21798
+ 403: components["responses"]["Error"];
21799
+ 404: components["responses"]["Error"];
21800
+ };
21801
+ };
21802
+ deleteAccessRole: {
21803
+ parameters: {
21804
+ query?: never;
21805
+ header?: never;
21806
+ path: {
21807
+ accessRoleID: components["parameters"]["AccessRoleID"];
21808
+ };
21809
+ cookie?: never;
21810
+ };
21811
+ requestBody?: never;
21812
+ responses: {
21813
+ /** @description Access role deleted. */
21814
+ 200: {
21815
+ headers: {
21816
+ [name: string]: unknown;
21817
+ };
21818
+ content: {
21819
+ "application/json": components["schemas"]["AccessRoleDeleteResult"];
21820
+ };
21821
+ };
21822
+ 401: components["responses"]["Error"];
21823
+ 403: components["responses"]["Error"];
21824
+ 404: components["responses"]["Error"];
21825
+ };
21826
+ };
21507
21827
  getIdentityRuntimeCapabilities: {
21508
21828
  parameters: {
21509
21829
  query?: never;