UNPKG

@cerbos/files

Version:
253 lines 7.41 kB
import { Effect } from "../../effect/v1/effect"; export declare const protobufPackage = "cerbos.policy.v1"; export declare enum ScopePermissions { SCOPE_PERMISSIONS_UNSPECIFIED = 0, SCOPE_PERMISSIONS_OVERRIDE_PARENT = 1, SCOPE_PERMISSIONS_REQUIRE_PARENTAL_CONSENT_FOR_ALLOWS = 2 } export declare function scopePermissionsFromJSON(object: any): ScopePermissions; export declare function scopePermissionsToJSON(object: ScopePermissions): string; export interface Policy { apiVersion: string; disabled: boolean; description: string; metadata: Metadata | undefined; policyType?: { $case: "resourcePolicy"; resourcePolicy: ResourcePolicy; } | { $case: "principalPolicy"; principalPolicy: PrincipalPolicy; } | { $case: "derivedRoles"; derivedRoles: DerivedRoles; } | { $case: "exportVariables"; exportVariables: ExportVariables; } | { $case: "rolePolicy"; rolePolicy: RolePolicy; } | { $case: "exportConstants"; exportConstants: ExportConstants; } | undefined; variables: { [key: string]: string; }; jsonSchema: string; } export interface Policy_VariablesEntry { key: string; value: string; } export interface SourceAttributes { attributes: { [key: string]: any | undefined; }; } export interface SourceAttributes_AttributesEntry { key: string; value: any | undefined; } export interface Metadata { sourceFile: string; annotations: { [key: string]: string; }; hash: string | undefined; storeIdentifer: string; storeIdentifier: string; sourceAttributes: SourceAttributes | undefined; } export interface Metadata_AnnotationsEntry { key: string; value: string; } export interface ResourcePolicy { resource: string; version: string; importDerivedRoles: string[]; rules: ResourceRule[]; scope: string; schemas: Schemas | undefined; variables: Variables | undefined; scopePermissions: ScopePermissions; constants: Constants | undefined; } export interface ResourceRule { actions: string[]; derivedRoles: string[]; roles: string[]; condition: Condition | undefined; effect: Effect; name: string; output: Output | undefined; } export interface RolePolicy { policyType?: { $case: "role"; role: string; } | undefined; parentRoles: string[]; scope: string; rules: RoleRule[]; scopePermissions: ScopePermissions; } export interface RoleRule { resource: string; allowActions: string[]; condition: Condition | undefined; } export interface PrincipalPolicy { principal: string; version: string; rules: PrincipalRule[]; scope: string; variables: Variables | undefined; scopePermissions: ScopePermissions; constants: Constants | undefined; } export interface PrincipalRule { resource: string; actions: PrincipalRule_Action[]; } export interface PrincipalRule_Action { action: string; condition: Condition | undefined; effect: Effect; name: string; output: Output | undefined; } export interface DerivedRoles { name: string; definitions: RoleDef[]; variables: Variables | undefined; constants: Constants | undefined; } export interface RoleDef { name: string; parentRoles: string[]; condition: Condition | undefined; } export interface ExportConstants { name: string; definitions: { [key: string]: any | undefined; }; } export interface ExportConstants_DefinitionsEntry { key: string; value: any | undefined; } export interface Constants { import: string[]; local: { [key: string]: any | undefined; }; } export interface Constants_LocalEntry { key: string; value: any | undefined; } export interface ExportVariables { name: string; definitions: { [key: string]: string; }; } export interface ExportVariables_DefinitionsEntry { key: string; value: string; } export interface Variables { import: string[]; local: { [key: string]: string; }; } export interface Variables_LocalEntry { key: string; value: string; } export interface Condition { condition?: { $case: "match"; match: Match; } | { $case: "script"; script: string; } | undefined; } export interface Match { op?: { $case: "all"; all: Match_ExprList; } | { $case: "any"; any: Match_ExprList; } | { $case: "none"; none: Match_ExprList; } | { $case: "expr"; expr: string; } | undefined; } export interface Match_ExprList { of: Match[]; } export interface Output { expr: string; when: Output_When | undefined; } export interface Output_When { ruleActivated: string; conditionNotMet: string; } export interface Schemas { principalSchema: Schemas_Schema | undefined; resourceSchema: Schemas_Schema | undefined; } export interface Schemas_IgnoreWhen { actions: string[]; } export interface Schemas_Schema { ref: string; ignoreWhen: Schemas_IgnoreWhen | undefined; } export declare const Policy: MessageFns<Policy>; export declare const Policy_VariablesEntry: MessageFns<Policy_VariablesEntry>; export declare const SourceAttributes: MessageFns<SourceAttributes>; export declare const SourceAttributes_AttributesEntry: MessageFns<SourceAttributes_AttributesEntry>; export declare const Metadata: MessageFns<Metadata>; export declare const Metadata_AnnotationsEntry: MessageFns<Metadata_AnnotationsEntry>; export declare const ResourcePolicy: MessageFns<ResourcePolicy>; export declare const ResourceRule: MessageFns<ResourceRule>; export declare const RolePolicy: MessageFns<RolePolicy>; export declare const RoleRule: MessageFns<RoleRule>; export declare const PrincipalPolicy: MessageFns<PrincipalPolicy>; export declare const PrincipalRule: MessageFns<PrincipalRule>; export declare const PrincipalRule_Action: MessageFns<PrincipalRule_Action>; export declare const DerivedRoles: MessageFns<DerivedRoles>; export declare const RoleDef: MessageFns<RoleDef>; export declare const ExportConstants: MessageFns<ExportConstants>; export declare const ExportConstants_DefinitionsEntry: MessageFns<ExportConstants_DefinitionsEntry>; export declare const Constants: MessageFns<Constants>; export declare const Constants_LocalEntry: MessageFns<Constants_LocalEntry>; export declare const ExportVariables: MessageFns<ExportVariables>; export declare const ExportVariables_DefinitionsEntry: MessageFns<ExportVariables_DefinitionsEntry>; export declare const Variables: MessageFns<Variables>; export declare const Variables_LocalEntry: MessageFns<Variables_LocalEntry>; export declare const Condition: MessageFns<Condition>; export declare const Match: MessageFns<Match>; export declare const Match_ExprList: MessageFns<Match_ExprList>; export declare const Output: MessageFns<Output>; export declare const Output_When: MessageFns<Output_When>; export declare const Schemas: MessageFns<Schemas>; export declare const Schemas_IgnoreWhen: MessageFns<Schemas_IgnoreWhen>; export declare const Schemas_Schema: MessageFns<Schemas_Schema>; export interface MessageFns<T> { fromJSON(object: any): T; toJSON(message: T): unknown; } //# sourceMappingURL=policy.d.ts.map