From fd6dd208de57881927680ea5893627a02f1f43dc Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:04:33 +0200 Subject: [PATCH 1/8] Add primitive types for IPA API metadata. Introduce shared aliases for FreeIPA wire types used by generated request and metadata definitions. Co-authored-by: Cursor Signed-off-by: David Hanina --- src/services/types/primitives.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/services/types/primitives.ts diff --git a/src/services/types/primitives.ts b/src/services/types/primitives.ts new file mode 100644 index 000000000..696ea08c4 --- /dev/null +++ b/src/services/types/primitives.ts @@ -0,0 +1,15 @@ +type SingleTuple = [T]; + +export type NumberAsString = `${T}`; +export type StringSingleTuple = SingleTuple; +export type NumberAsStringSingleTuple = SingleTuple<`${T}`>; + +export type Certificate = string; +export type CertificateSigningRequest = string; +export type DN = string; +export type DNSName = string; +export type Decimal = number; +export type Principal = string; +export type Bytes = string; +export type DateTime = string; +export type Int = number; From 7114179b13c5e8f2006a9023e08469b5fcce6024 Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:05:02 +0200 Subject: [PATCH 2/8] Add generated param metadata types. Define ParamType, ParamClass, and per-class parameter shapes derived from IPA json_metadata output. Co-authored-by: Cursor Signed-off-by: David Hanina --- src/services/types/param.ts | 583 ++++++++++++++++++++++++++++++++++++ 1 file changed, 583 insertions(+) create mode 100644 src/services/types/param.ts diff --git a/src/services/types/param.ts b/src/services/types/param.ts new file mode 100644 index 000000000..9a65457c1 --- /dev/null +++ b/src/services/types/param.ts @@ -0,0 +1,583 @@ +// Assembled using Python generate-param-metadata.py + +import { NumberAsString } from "./primitives"; + +// jq '[.result.objects | .. | objects | select(has("type")) | .type] | unique | sort' ./response.json +export type ParamType = + | "Certificate" + | "DN" + | "DNSName" + | "Decimal" + | "Principal" + | "bool" + | "bytes" + | "datetime" + | "int" + | "object" + | "str"; + +// jq '[.result.objects | .. | objects | select(has("class")) | .class | strings] | unique | sort' ./response.json +export type ParamClass = + | "A6Record" + | "AAAARecord" + | "AFSDBRecord" + | "APLRecord" + | "ARecord" + | "Any" + | "Bool" + | "Bytes" + | "CERTRecord" + | "CNAMERecord" + | "Certificate" + | "DHCIDRecord" + | "DLVRecord" + | "DNAMERecord" + | "DNOrURL" + | "DNParam" + | "DNSNameParam" + | "DSRecord" + | "DateTime" + | "Decimal" + | "Flag" + | "HIPRecord" + | "HostPassword" + | "IA5Str" + | "IPSECKEYRecord" + | "Int" + | "IntEnum" + | "KEYRecord" + | "KXRecord" + | "LOCRecord" + | "MXRecord" + | "NAPTRRecord" + | "NSECRecord" + | "NSRecord" + | "OTPTokenKey" + | "PTRRecord" + | "Password" + | "Principal" + | "RPRecord" + | "RRSIGRecord" + | "SIGRecord" + | "SPFRecord" + | "SRVRecord" + | "SSHFPRecord" + | "SerialNumber" + | "Str" + | "StrEnum" + | "TLSARecord" + | "TXTRecord" + | "URIRecord"; + +type ParamMetadataBase = { + cli_name: string; + deprecated_cli_aliases: string[]; + label: string; + doc: string; + required: boolean; + multivalue: boolean; + primary_key: boolean; + autofill: boolean; + query: boolean; + attribute: boolean; + flags: string[]; + alwaysask: boolean; + sortorder: number; + cli_metavar: string; + no_convert: boolean; + deprecated: boolean; + confirm: boolean; + name: string; +}; + +type ExcludeMeta = { exclude: ["webui"] }; + +type NoExtraWhitespaceMeta = { noextrawhitespace: true }; + +type OptionGroupMeta = { option_group: string }; + +type MaxlengthMeta = { maxlength: number }; + +type MinlengthMeta = { minlength: number }; + +export type ParamMetadataStr< + C extends ParamClass = "Str", + T extends ParamType = "str", +> = ParamMetadataBase & { + class: C; + default?: string; + pattern: string; + pattern_errmsg: string; + type: T; +} & Partial & + NoExtraWhitespaceMeta & + Partial & + Partial & + Partial; + +export type ParamMetadataStrEnum< + C extends ParamClass = "StrEnum", + T extends ParamType = "str", +> = ParamMetadataBase & { + class: C; + default?: string; + values: string[]; + type: T; +} & Partial & + Partial; + +export type ParamMetadataFlag< + C extends ParamClass = "Flag", + T extends ParamType = "bool", +> = ParamMetadataBase & { + class: C; + default?: boolean; + truths: [1, "1", "true", "TRUE"]; + falsehoods: [0, "0", "false", "FALSE"]; + type: T; +} & Partial & + Partial; + +export type ParamMetadataDNParam< + C extends ParamClass = "DNParam", + T extends ParamType = "DN", +> = ParamMetadataBase & { + class: C; + default?: string; + type: T; +}; + +export type ParamMetadataIA5Str< + C extends ParamClass = "IA5Str", + T extends ParamType = "str", +> = ParamMetadataBase & { + class: C; + type: T; +} & NoExtraWhitespaceMeta; + +export type ParamMetadataBytes< + C extends ParamClass = "Bytes", + T extends ParamType = "bytes", +> = ParamMetadataBase & { + class: C; + type: T; +}; + +export type ParamMetadataBool< + C extends ParamClass = "Bool", + T extends ParamType = "bool", +> = ParamMetadataBase & { + class: C; + default?: boolean; + truths: [1, "1", "true", "TRUE"]; + falsehoods: [0, "0", "false", "FALSE"]; + type: T; +}; + +export type ParamMetadataCertificate< + C extends ParamClass = "Certificate", + T extends ParamType = "Certificate", +> = ParamMetadataBase & { + class: C; + type: T; +}; + +export type ParamMetadataDNSNameParam< + C extends ParamClass = "DNSNameParam", + T extends ParamType = "DNSName", +> = ParamMetadataBase & { + class: C; + default?: string; + only_absolute: boolean; + only_relative: boolean; + type: T; +} & Partial; + +export type ParamMetadataPrincipal< + C extends ParamClass = "Principal", + T extends ParamType = "Principal", +> = ParamMetadataBase & { + class: C; + require_service: boolean; + type: T; +}; + +export type ParamMetadataDateTime< + C extends ParamClass = "DateTime", + T extends ParamType = "datetime", +> = ParamMetadataBase & { + class: C; + type: T; +}; + +export type ParamMetadataSerialNumber< + C extends ParamClass = "SerialNumber", + T extends ParamType = "int", +> = ParamMetadataBase & { + class: C; + maxlength: number; + minlength: number; + type: T; +}; + +export type ParamMetadataDecimal< + C extends ParamClass = "Decimal", + T extends ParamType = "Decimal", +> = ParamMetadataBase & { + class: C; + minvalue: NumberAsString; + maxvalue: NumberAsString; + precision: number; + exponential: boolean; + numberclass: string[]; + type: T; +} & Partial; + +export type ParamMetadataAny< + C extends ParamClass = "Any", + T extends ParamType = "object", +> = ParamMetadataBase & { + class: C; + type: T; +}; + +type DNSRecord = ParamMetadataBase & { + option_group: string; + validatedns: boolean; + normalizedns: boolean; + noextrawhitespace: boolean; +} & Partial; + +export type ParamMetadataARecord< + C extends ParamClass = "ARecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataAAAARecord< + C extends ParamClass = "AAAARecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataA6Record< + C extends ParamClass = "A6Record", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataAFSDBRecord< + C extends ParamClass = "AFSDBRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataAPLRecord< + C extends ParamClass = "APLRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataCERTRecord< + C extends ParamClass = "CERTRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataCNAMERecord< + C extends ParamClass = "CNAMERecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataDHCIDRecord< + C extends ParamClass = "DHCIDRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataDLVRecord< + C extends ParamClass = "DLVRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataDNAMERecord< + C extends ParamClass = "DNAMERecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataDSRecord< + C extends ParamClass = "DSRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataHIPRecord< + C extends ParamClass = "HIPRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataIPSECKEYRecord< + C extends ParamClass = "IPSECKEYRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataKEYRecord< + C extends ParamClass = "KEYRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataKXRecord< + C extends ParamClass = "KXRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataLOCRecord< + C extends ParamClass = "LOCRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataMXRecord< + C extends ParamClass = "MXRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataNAPTRRecord< + C extends ParamClass = "NAPTRRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataNSRecord< + C extends ParamClass = "NSRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataNSECRecord< + C extends ParamClass = "NSECRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataPTRRecord< + C extends ParamClass = "PTRRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataRRSIGRecord< + C extends ParamClass = "RRSIGRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataRPRecord< + C extends ParamClass = "RPRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataSIGRecord< + C extends ParamClass = "SIGRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataSPFRecord< + C extends ParamClass = "SPFRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataSRVRecord< + C extends ParamClass = "SRVRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataSSHFPRecord< + C extends ParamClass = "SSHFPRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataTLSARecord< + C extends ParamClass = "TLSARecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataTXTRecord< + C extends ParamClass = "TXTRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataURIRecord< + C extends ParamClass = "URIRecord", + T extends ParamType = "str", +> = DNSRecord & { + class: C; + type: T; +}; + +export type ParamMetadataHostPassword< + C extends ParamClass = "HostPassword", + T extends ParamType = "str", +> = ParamMetadataBase & { + class: C; + type: T; +} & NoExtraWhitespaceMeta; + +export type ParamMetadataPassword< + C extends ParamClass = "Password", + T extends ParamType = "str", +> = ParamMetadataBase & { + class: C; + type: T; +} & NoExtraWhitespaceMeta & + Partial; + +export type ParamMetadataOTPTokenKey< + C extends ParamClass = "OTPTokenKey", + T extends ParamType = "str", +> = ParamMetadataBase & { + class: C; + type: T; +}; + +export type ParamMetadataIntEnum< + C extends ParamClass = "IntEnum", + T extends ParamType = "int", +> = ParamMetadataBase & { + class: C; + default: number; + values: number[]; + type: T; +}; + +export type ParamMetadataDNOrURL< + C extends ParamClass = "DNOrURL", + T extends ParamType = "DN", +> = ParamMetadataBase & { + class: C; + type: T; +}; + +export type GenericParamMetadata = + | ParamMetadataStr + | ParamMetadataStrEnum + | ParamMetadataFlag + | ParamMetadataDNParam + | ParamMetadataIA5Str + | ParamMetadataBytes + | ParamMetadataBool + | ParamMetadataCertificate + | ParamMetadataDNSNameParam + | ParamMetadataPrincipal + | ParamMetadataDateTime + | ParamMetadataSerialNumber + | ParamMetadataDecimal + | ParamMetadataAny + | ParamMetadataARecord + | ParamMetadataAAAARecord + | ParamMetadataA6Record + | ParamMetadataAFSDBRecord + | ParamMetadataAPLRecord + | ParamMetadataCERTRecord + | ParamMetadataCNAMERecord + | ParamMetadataDHCIDRecord + | ParamMetadataDLVRecord + | ParamMetadataDNAMERecord + | ParamMetadataDSRecord + | ParamMetadataHIPRecord + | ParamMetadataIPSECKEYRecord + | ParamMetadataKEYRecord + | ParamMetadataKXRecord + | ParamMetadataLOCRecord + | ParamMetadataMXRecord + | ParamMetadataNAPTRRecord + | ParamMetadataNSRecord + | ParamMetadataNSECRecord + | ParamMetadataPTRRecord + | ParamMetadataRRSIGRecord + | ParamMetadataRPRecord + | ParamMetadataSIGRecord + | ParamMetadataSPFRecord + | ParamMetadataSRVRecord + | ParamMetadataSSHFPRecord + | ParamMetadataTLSARecord + | ParamMetadataTXTRecord + | ParamMetadataURIRecord + | ParamMetadataHostPassword + | ParamMetadataPassword + | ParamMetadataOTPTokenKey + | ParamMetadataIntEnum + | ParamMetadataDNOrURL; From 829bfd802e54c259c9b322dff1ab2d1f9a5bc7a4 Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:05:02 +0200 Subject: [PATCH 3/8] Add generated object metadata types. Model IPA object relationships, methods, and attribute metadata for type-safe API usage. Co-authored-by: Cursor Signed-off-by: David Hanina --- src/services/types/metadata.ts | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/services/types/metadata.ts diff --git a/src/services/types/metadata.ts b/src/services/types/metadata.ts new file mode 100644 index 000000000..dff4fed23 --- /dev/null +++ b/src/services/types/metadata.ts @@ -0,0 +1,76 @@ +import { GenericParamMetadata, ParamClass, ParamType } from "./param"; + +// jq -r '[.result.objects | to_entries[] | .value.relationships // {} | keys[]] | unique | sort[]' ./response.json +type RelationshipKey = + | "enrolledby" + | "ipaallowedtoperform_read_keys" + | "ipaallowedtoperform_write_delegation" + | "ipaallowedtoperform_write_keys" + | "ipalocation" + | "iparepltopomanagedsuffix" + | "managedby" + | "managing" + | "member" + | "memberhost" + | "memberindirect" + | "membermanager" + | "memberof" + | "memberofindirect" + | "memberuser" + | "role"; + +type Relationships = { + [K in RelationshipKey]: [string, null | string, string]; +}; + +type AttributeMembers = { + [K in RelationshipKey]: RelationshipKey[]; +}; + +type ObjectMetadata = { + name: T; + takes_params: GenericParamMetadata[]; + methods: string[]; +} & PrimaryKeyObjectMetadata; + +type PrimaryKeyObjectMetadata = { + primary_key: string; +}; + +type ComplexObjectMetadata = { + parent_object: string; + container_dn: string; + object_name: string; + object_name_plural: string; + object_class: string[]; + object_class_config: null; + default_attributes: string[]; + label: string; + label_singular: string; + hidden_attributes: string[]; + uuid_attribute: string; + attribute_member: AttributeMembers; + rdn_attribute: string; + bindable: boolean; + relationships: Relationships; + primary_key: string; + aciattrs: string[]; + can_have_permissions: boolean; +} & PrimaryKeyObjectMetadata & + ObjectMetadata; + +type ObjectRecord = { + [K in T]: ObjectMetadata | ComplexObjectMetadata; +}; + +type MethodRecord = { + doc: string; + NO_CLI: boolean; + takes_options: GenericParamMetadata[]; +} & ObjectMetadata; + +export type Metadata = { + objects: ObjectRecord; + methods: MethodRecord; + commands: MethodRecord; +}; From 6ce3c42c01cde36167e6778bdca10397366393d9 Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:05:02 +0200 Subject: [PATCH 4/8] Add typed RPC response shapes. Introduce ValidResponse, ErrorResponse, and batch response types for IPA JSON-RPC calls. Co-authored-by: Cursor Signed-off-by: David Hanina --- src/services/response.ts | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/services/response.ts diff --git a/src/services/response.ts b/src/services/response.ts new file mode 100644 index 000000000..dc16b4dda --- /dev/null +++ b/src/services/response.ts @@ -0,0 +1,46 @@ +type ErrorResult = { + code: number; + message: string; + data: T; + name: string; +}; + +export type ErrorResponse = { + result: null; + error: ErrorResult; + id: null; + principal: string; + version: string; +}; + +export type ValidResponse = { + result: T; + error: null; + id: null; + principal: string; + version: string; +}; + +type ValidBatch = { + error: null; + result: T; + truncated: boolean; + summary?: string; +}; + +type ErrorBatch = { + error: string; + error_code: number; + error_kw: { + reason: string; + }; + error_name: string; +}; + +type RequestBatch = { + requests: Request[]; +}; + +type RequestBatchResponse = { + responses: Response[]; +}; \ No newline at end of file From 3669b27ca61ba7d340f592de1477d05a20db4197 Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:05:02 +0200 Subject: [PATCH 5/8] Add scripts to generate TypeScript from IPA metadata. Provide Python tooling to produce param and request type definitions from json_metadata responses. Co-authored-by: Cursor Signed-off-by: David Hanina --- scripts/generate-param-metadata.py | 240 +++++++++++++++++++++++++++++ scripts/generate-request-types.py | 47 ++++++ 2 files changed, 287 insertions(+) create mode 100755 scripts/generate-param-metadata.py create mode 100755 scripts/generate-request-types.py diff --git a/scripts/generate-param-metadata.py b/scripts/generate-param-metadata.py new file mode 100755 index 000000000..b7aecb3a7 --- /dev/null +++ b/scripts/generate-param-metadata.py @@ -0,0 +1,240 @@ +#!/usr/bin/env python3 + +import argparse +import json +from dataclasses import dataclass +from pathlib import Path +from typing import TextIO + +TYPES_MAP = { + "Certificate": "Certificate", + "CertificateSigningRequest": "CertificateSigningRequest", + "dict": "Record", + "DN": "DN", + "DNSName": "DNSName", + "Decimal": "Decimal", + "Principal": "Principal", + "bool": "boolean", + "bytes": "Bytes", + "datetime": "DateTime", + "int": "number", + "object": "object", + "str": "string", +} + +FILES = { + "aci": "aci.ts", + "automember": "automember.ts", + "automountkey": "automountkey.ts", + "automountlocation": "automountlocation.ts", + "automountmap": "automountmap.ts", + "ca": "ca.ts", + "caacl": "caacl.ts", + "cert": "cert.ts", + "certmap": "certmap.ts", + "certmapconfig": "certmapconfig.ts", + "certmaprule": "certmaprule.ts", + "certprofile": "certprofile.ts", + "class": "class.ts", + "command": "command.ts", + "config": "config.ts", + "cosentry": "cosentry.ts", + "delegation": "delegation.ts", + "dns": "dns.ts", + "dnsconfig": "dnsconfig.ts", + "dnsforwardzone": "dnsforwardzone.ts", + "dnsrecord": "dnsrecord.ts", + "dnsserver": "dnsserver.ts", + "dnszone": "dnszone.ts", + "group": "group.ts", + "hbacrule": "hbacrule.ts", + "hbacsvc": "hbacsvc.ts", + "hbacsvcgroup": "hbacsvcgroup.ts", + "host": "host.ts", + "hostgroup": "hostgroup.ts", + "idoverridegroup": "idoverridegroup.ts", + "idoverrideuser": "idoverrideuser.ts", + "idp": "idp.ts", + "idrange": "idrange.ts", + "idview": "idview.ts", + "krbtpolicy": "krbtpolicy.ts", + "location": "location.ts", + "netgroup": "netgroup.ts", + "otpconfig": "otpconfig.ts", + "otptoken": "otptoken.ts", + "output": "output.ts", + "param": "param.ts", + "passkeyconfig": "passkeyconfig.ts", + "pkinit": "pkinit.ts", + "permission": "permission.ts", + "privilege": "privilege.ts", + "pwpolicy": "pwpolicy.ts", + "radiusproxy": "radiusproxy.ts", + "realmdomains": "realmdomains.ts", + "role": "role.ts", + "selfservice": "selfservice.ts", + "selinuxusermap": "selinuxusermap.ts", + "server": "server.ts", + "service": "service.ts", + "servicedelegationrule": "servicedelegationrule.ts", + "servicedelegationtarget": "servicedelegationtarget.ts", + "stageuser": "stageuser.ts", + "subid": "subid.ts", + "sudocmd": "sudocmd.ts", + "sudocmdgroup": "sudocmdgroup.ts", + "sudorule": "sudorule.ts", + "sysaccount": "sysaccount.ts", + "topic": "topic.ts", + "topologysegment": "topologysegment.ts", + "topologysuffix": "topologysuffix.ts", + "trust": "trust.ts", + "trustconfig": "trustconfig.ts", + "trustdomain": "trustdomain.ts", + "user": "user.ts", + "vault": "vault.ts", + "vaultconfig": "vaultconfig.ts", + "vaultcontainer": "vaultcontainer.ts", +} + + +def extract_prefix(name: str) -> str: + """ + Extract the first word till _ in the string + """ + i = 1 + while i < len(name) and name[i] != "_": + i += 1 + + return name[:i] + + +def get_file_name(name: str) -> str: + prefix = extract_prefix(name) + return FILES.get(prefix, "utils.ts") + + +def convert_name(name: str) -> str: + """ + Convert from snake_case to PascalCase. + """ + new_name = name[0].upper() + next_upper = False + for char in name[1:]: + if next_upper: + new_name += char.upper() + next_upper = False + elif char == "_": + next_upper = True + else: + next_upper = False + new_name += char + + return new_name + + +def is_optional(param) -> bool: + return param["required"] == False + + +def values(param) -> str: + if param["class"] == "StrEnum": + return " | ".join(f'"{value}"' for value in param["values"]) + if param["class"] == "IntEnum": + return " | ".join(f"{value}" for value in param["values"]) + return TYPES_MAP[param["type"]] + + +def write_attribute(f: TextIO, name: str, args) -> None: + f.write(f" {name}") + if is_optional(args): + f.write("?") + f.write(": ") + f.write(values(args)) + f.write(";\n") + + +def write_file(file_path: Path, name: str, obj: dict) -> None: + with open(file_path, "a") as f: + name = convert_name(name) + + if len(obj["takes_args"]) == 0: + f.write(f"export type {name}Args = null;\n\n") + else: + f.write(f"export type {name}Args = {{\n") + for args in obj["takes_args"]: + # For some reason env only has variables*, whatever that means... + if type(args) == str and args == "variables*": + f.write(f" variables?: string[];\n") + continue + + inner_name = args["name"] + write_attribute(f, inner_name, args) + + f.write("};\n\n") + + if len(obj["takes_options"]) == 0: + f.write(f"export type {name}Options = null;\n\n") + else: + f.write(f"export type {name}Options = {{\n") + + for args in obj["takes_options"]: + inner_name = args["name"] + write_attribute(f, inner_name, args) + + f.write("};\n\n") + + +@dataclass +class ProgramArguments: + prefix: Path + response: Path + commands: bool + + +def parse_arguments() -> ProgramArguments: + parser = argparse.ArgumentParser() + parser.add_argument( + "--prefix", + type=Path, + default=Path("../src/services/requests"), + help="The prefix folder to store the request types", + ) + parser.add_argument( + "response", + type=Path, + metavar="RESPONSE_FILE", + help="The response file to parse, can be be obtained through json_metadata command.", + ) + parser.add_argument( + "-c", + "--commands", + action="store_true", + default=False, + help="Generate request types for commands instead of methods.", + ) + return ProgramArguments(**vars(parser.parse_args())) + + +if __name__ == "__main__": + program_args = parse_arguments() + + program_args.prefix.mkdir(parents=True, exist_ok=True) + data = json.load(program_args.response.open()) + + needle = "commands" if program_args.commands else "methods" + with open(program_args.prefix / "index.ts", "a") as index_file: + index_file.write("export type RequestMap = {\n") + + for name, obj in data["result"][needle].items(): + file_name = get_file_name(name) + file_path = program_args.prefix / file_name + + write_file(file_path, name, obj) + + index_file.write(f" {name}: ") + index_file.write("{ ") + index_file.write(f"args: {convert_name(name)}Args; ") + index_file.write(f"options: {convert_name(name)}Options; ") + index_file.write("};\n") + + index_file.write("};\n") diff --git a/scripts/generate-request-types.py b/scripts/generate-request-types.py new file mode 100755 index 000000000..4df80556a --- /dev/null +++ b/scripts/generate-request-types.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +import argparse +import json +from dataclasses import dataclass +from pathlib import Path + + +@dataclass +class ProgramArguments: + response: Path + + +def parse_arguments() -> ProgramArguments: + parser = argparse.ArgumentParser() + parser.add_argument( + "response", + type=Path, + metavar="RESPONSE_FILE", + help="The response file to parse, can be be obtained through json_metadata command.", + ) + return ProgramArguments(**vars(parser.parse_args())) + + +if __name__ == "__main__": + program_args = parse_arguments() + + data = json.load(program_args.response.open()) + + classes = {} + for obj in data["result"]["objects"]: + for param in data["result"]["objects"][obj]["takes_params"]: + if param["class"] not in classes: + classes[param["class"]] = set() + + for p in param: + if p not in classes[param["class"]]: + classes[param["class"]].add(p) + + intersection = set.intersection(*classes.values()) + print("Intersections:") + print(sorted(intersection)) + + classes_without_intersection = {k: v - intersection for k, v in classes.items()} + print("Classes without intersection:") + for k, v in classes_without_intersection.items(): + print(f"{k}: {sorted(v)}") From d3ceb1bf6bf2f577c295546ac477114e16ff722d Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:05:02 +0200 Subject: [PATCH 6/8] Fix getObjectMetadata to request full API metadata. Pass methodname and command filters and call the JSON endpoint directly so metadata generation receives complete object definitions. Co-authored-by: Cursor Signed-off-by: David Hanina --- src/services/rpc.ts | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/services/rpc.ts b/src/services/rpc.ts index 6da64e206..40392a468 100644 --- a/src/services/rpc.ts +++ b/src/services/rpc.ts @@ -260,18 +260,26 @@ export const api = createApi({ }), getObjectMetadata: build.query({ query: () => { - return getCommand({ - method: "json_metadata", - params: [ - [], - { - object: "all", - }, - ], - }); + return { + url: "ipa/session/json", + method: "POST", + body: { + method: "json_metadata", + params: [ + [], + { + object: "all", + methodname: "all", + command: "all", + }, + ], + }, + }; + }, + transformResponse: (response: ShowRPCResponse): Metadata => { + console.log(response); + return response.result; }, - transformResponse: (response: ShowRPCResponse): Metadata => - response.result, providesTags: ["ObjectMetadata"], }), // Basic find/show query: Hosts, Services, ... From 5f6aeb56d31240cd2f251df728cf801631ae504c Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:09:21 +0200 Subject: [PATCH 7/8] Add generated typed IPA request definitions. Introduce per-object Args and Options types plus a RequestMap index for all IPA API methods, with a typed request method helper. Co-authored-by: Cursor Signed-off-by: David Hanina --- src/services/requests/aci.ts | 120 + src/services/requests/automember.ts | 146 + src/services/requests/automountkey.ts | 75 + src/services/requests/automountlocation.ts | 53 + src/services/requests/automountmap.ts | 83 + src/services/requests/ca.ts | 94 + src/services/requests/caacl.ts | 224 ++ src/services/requests/cert.ts | 111 + src/services/requests/certmap.ts | 11 + src/services/requests/certmapconfig.ts | 21 + src/services/requests/certmaprule.ts | 95 + src/services/requests/certprofile.ts | 66 + src/services/requests/class.ts | 20 + src/services/requests/command.ts | 30 + src/services/requests/config.ts | 66 + src/services/requests/cosentry.ts | 67 + src/services/requests/delegation.ts | 61 + src/services/requests/dns.ts | 26 + src/services/requests/dnsconfig.ts | 27 + src/services/requests/dnsforwardzone.ts | 105 + src/services/requests/dnsrecord.ts | 340 +++ src/services/requests/dnsserver.ts | 47 + src/services/requests/dnszone.ts | 161 ++ src/services/requests/group.ts | 168 ++ src/services/requests/hbacrule.ts | 208 ++ src/services/requests/hbacsvc.ts | 66 + src/services/requests/hbacsvcgroup.ts | 90 + src/services/requests/host.ts | 332 +++ src/services/requests/hostgroup.ts | 135 + src/services/requests/idoverridegroup.ts | 79 + src/services/requests/idoverrideuser.ts | 132 + src/services/requests/idp.ts | 95 + src/services/requests/idrange.ts | 85 + src/services/requests/idview.ts | 84 + src/services/requests/index.ts | 2385 +++++++++++++++++ src/services/requests/krbtpolicy.ts | 48 + src/services/requests/location.ts | 64 + src/services/requests/netgroup.ts | 125 + src/services/requests/otpconfig.ts | 24 + src/services/requests/otptoken.ts | 133 + src/services/requests/output.ts | 22 + src/services/requests/param.ts | 22 + src/services/requests/passkeyconfig.ts | 21 + src/services/requests/permission.ts | 164 ++ src/services/requests/pkinit.ts | 13 + src/services/requests/privilege.ts | 115 + src/services/requests/pwpolicy.ts | 114 + src/services/requests/radiusproxy.ts | 78 + src/services/requests/realmdomains.ts | 24 + src/services/requests/role.ts | 127 + src/services/requests/selfservice.ts | 55 + src/services/requests/selinuxusermap.ts | 149 + src/services/requests/server.ts | 111 + src/services/requests/service.ts | 299 +++ .../requests/servicedelegationrule.ts | 96 + .../requests/servicedelegationtarget.ts | 67 + src/services/requests/stageuser.ts | 344 +++ src/services/requests/subid.ts | 98 + src/services/requests/sudocmd.ts | 66 + src/services/requests/sudocmdgroup.ts | 90 + src/services/requests/sudorule.ts | 296 ++ src/services/requests/sysaccount.ts | 104 + src/services/requests/topic.ts | 20 + src/services/requests/topologysegment.ts | 99 + src/services/requests/topologysuffix.ts | 72 + src/services/requests/trust.ts | 108 + src/services/requests/trustconfig.ts | 23 + src/services/requests/trustdomain.ts | 78 + src/services/requests/user.ts | 418 +++ src/services/requests/utils.ts | 174 ++ src/services/requests/vault.ts | 195 ++ src/services/requests/vaultconfig.ts | 8 + src/services/requests/vaultcontainer.ts | 54 + 73 files changed, 10026 insertions(+) create mode 100644 src/services/requests/aci.ts create mode 100644 src/services/requests/automember.ts create mode 100644 src/services/requests/automountkey.ts create mode 100644 src/services/requests/automountlocation.ts create mode 100644 src/services/requests/automountmap.ts create mode 100644 src/services/requests/ca.ts create mode 100644 src/services/requests/caacl.ts create mode 100644 src/services/requests/cert.ts create mode 100644 src/services/requests/certmap.ts create mode 100644 src/services/requests/certmapconfig.ts create mode 100644 src/services/requests/certmaprule.ts create mode 100644 src/services/requests/certprofile.ts create mode 100644 src/services/requests/class.ts create mode 100644 src/services/requests/command.ts create mode 100644 src/services/requests/config.ts create mode 100644 src/services/requests/cosentry.ts create mode 100644 src/services/requests/delegation.ts create mode 100644 src/services/requests/dns.ts create mode 100644 src/services/requests/dnsconfig.ts create mode 100644 src/services/requests/dnsforwardzone.ts create mode 100644 src/services/requests/dnsrecord.ts create mode 100644 src/services/requests/dnsserver.ts create mode 100644 src/services/requests/dnszone.ts create mode 100644 src/services/requests/group.ts create mode 100644 src/services/requests/hbacrule.ts create mode 100644 src/services/requests/hbacsvc.ts create mode 100644 src/services/requests/hbacsvcgroup.ts create mode 100644 src/services/requests/host.ts create mode 100644 src/services/requests/hostgroup.ts create mode 100644 src/services/requests/idoverridegroup.ts create mode 100644 src/services/requests/idoverrideuser.ts create mode 100644 src/services/requests/idp.ts create mode 100644 src/services/requests/idrange.ts create mode 100644 src/services/requests/idview.ts create mode 100644 src/services/requests/index.ts create mode 100644 src/services/requests/krbtpolicy.ts create mode 100644 src/services/requests/location.ts create mode 100644 src/services/requests/netgroup.ts create mode 100644 src/services/requests/otpconfig.ts create mode 100644 src/services/requests/otptoken.ts create mode 100644 src/services/requests/output.ts create mode 100644 src/services/requests/param.ts create mode 100644 src/services/requests/passkeyconfig.ts create mode 100644 src/services/requests/permission.ts create mode 100644 src/services/requests/pkinit.ts create mode 100644 src/services/requests/privilege.ts create mode 100644 src/services/requests/pwpolicy.ts create mode 100644 src/services/requests/radiusproxy.ts create mode 100644 src/services/requests/realmdomains.ts create mode 100644 src/services/requests/role.ts create mode 100644 src/services/requests/selfservice.ts create mode 100644 src/services/requests/selinuxusermap.ts create mode 100644 src/services/requests/server.ts create mode 100644 src/services/requests/service.ts create mode 100644 src/services/requests/servicedelegationrule.ts create mode 100644 src/services/requests/servicedelegationtarget.ts create mode 100644 src/services/requests/stageuser.ts create mode 100644 src/services/requests/subid.ts create mode 100644 src/services/requests/sudocmd.ts create mode 100644 src/services/requests/sudocmdgroup.ts create mode 100644 src/services/requests/sudorule.ts create mode 100644 src/services/requests/sysaccount.ts create mode 100644 src/services/requests/topic.ts create mode 100644 src/services/requests/topologysegment.ts create mode 100644 src/services/requests/topologysuffix.ts create mode 100644 src/services/requests/trust.ts create mode 100644 src/services/requests/trustconfig.ts create mode 100644 src/services/requests/trustdomain.ts create mode 100644 src/services/requests/user.ts create mode 100644 src/services/requests/utils.ts create mode 100644 src/services/requests/vault.ts create mode 100644 src/services/requests/vaultconfig.ts create mode 100644 src/services/requests/vaultcontainer.ts diff --git a/src/services/requests/aci.ts b/src/services/requests/aci.ts new file mode 100644 index 000000000..0b107b972 --- /dev/null +++ b/src/services/requests/aci.ts @@ -0,0 +1,120 @@ +import { DN } from "../types/primitives"; + +type AciType = + | "user" + | "group" + | "host" + | "service" + | "hostgroup" + | "netgroup" + | "dnsrecord"; +type AciPrefix = "permission" | "delegation" | "selfservice" | "none"; + +export type AciAddArgs = { + aciname: string; +}; + +export type AciAddOptions = { + permission?: string; + group?: string; + permissions: string; + attrs?: string; + type?: AciType; + memberof?: string; + filter?: string; + subtree?: string; + targetgroup?: string; + selfaci?: boolean; + aciprefix: AciPrefix; + test?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AciDelArgs = { + aciname: string; +}; + +export type AciDelOptions = { + aciprefix: AciPrefix; + version?: string; +}; + +export type AciFindArgs = { + criteria?: string; +}; + +export type AciFindOptions = { + aciname?: string; + permission?: string; + group?: string; + permissions?: string; + attrs?: string; + type?: AciType; + memberof?: string; + filter?: string; + subtree?: string; + targetgroup?: string; + selfaci?: boolean; + aciprefix?: AciPrefix; + pkey_only?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AciModArgs = { + aciname: string; +}; + +export type AciModOptions = { + permission?: string; + group?: string; + permissions?: string; + attrs?: string; + type?: AciType; + memberof?: string; + filter?: string; + subtree?: string; + targetgroup?: string; + selfaci?: boolean; + aciprefix: AciPrefix; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AciRenameArgs = { + aciname: string; +}; + +export type AciRenameOptions = { + permission?: string; + group?: string; + permissions?: string; + attrs?: string; + type?: AciType; + memberof?: string; + filter?: string; + subtree?: string; + targetgroup?: string; + selfaci?: boolean; + aciprefix: AciPrefix; + newname: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AciShowArgs = { + aciname: string; +}; + +export type AciShowOptions = { + aciprefix: AciPrefix; + location?: DN; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/automember.ts b/src/services/requests/automember.ts new file mode 100644 index 000000000..f61b927da --- /dev/null +++ b/src/services/requests/automember.ts @@ -0,0 +1,146 @@ +export type AutomemberAddArgs = { + cn: string; +}; + +export type AutomemberAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberAddConditionArgs = { + cn: string; +}; + +export type AutomemberAddConditionOptions = { + description?: string; + automemberinclusiveregex?: string; + automemberexclusiveregex?: string; + key: string; + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberDefaultGroupRemoveArgs = null; + +export type AutomemberDefaultGroupRemoveOptions = { + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberDefaultGroupSetArgs = null; + +export type AutomemberDefaultGroupSetOptions = { + automemberdefaultgroup: string; + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberDefaultGroupShowArgs = null; + +export type AutomemberDefaultGroupShowOptions = { + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberDelArgs = { + cn: string; +}; + +export type AutomemberDelOptions = { + type: "group" | "hostgroup"; + version?: string; +}; + +export type AutomemberFindArgs = { + criteria?: string; +}; + +export type AutomemberFindOptions = { + description?: string; + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type AutomemberFindOrphansArgs = { + criteria?: string; +}; + +export type AutomemberFindOrphansOptions = { + description?: string; + type: "group" | "hostgroup"; + remove?: boolean; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type AutomemberModArgs = { + cn: string; +}; + +export type AutomemberModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberRebuildArgs = null; + +export type AutomemberRebuildOptions = { + type?: "group" | "hostgroup"; + users?: string; + hosts?: string; + no_wait?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberRemoveConditionArgs = { + cn: string; +}; + +export type AutomemberRemoveConditionOptions = { + description?: string; + automemberinclusiveregex?: string; + automemberexclusiveregex?: string; + key: string; + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomemberShowArgs = { + cn: string; +}; + +export type AutomemberShowOptions = { + type: "group" | "hostgroup"; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/automountkey.ts b/src/services/requests/automountkey.ts new file mode 100644 index 000000000..b5843dec2 --- /dev/null +++ b/src/services/requests/automountkey.ts @@ -0,0 +1,75 @@ +export type AutomountkeyAddArgs = { + automountlocationcn: string; + automountmapautomountmapname: string; +}; + +export type AutomountkeyAddOptions = { + automountkey: string; + automountinformation: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomountkeyDelArgs = { + automountlocationcn: string; + automountmapautomountmapname: string; +}; + +export type AutomountkeyDelOptions = { + continue: boolean; + automountkey: string; + automountinformation?: string; + version?: string; +}; + +export type AutomountkeyFindArgs = { + automountlocationcn: string; + automountmapautomountmapname: string; + criteria?: string; +}; + +export type AutomountkeyFindOptions = { + automountkey?: string; + automountinformation?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomountkeyModArgs = { + automountlocationcn: string; + automountmapautomountmapname: string; +}; + +export type AutomountkeyModOptions = { + automountkey: string; + automountinformation?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + newautomountinformation?: string; + all: boolean; + raw: boolean; + version?: string; + rename?: string; +}; + +export type AutomountkeyShowArgs = { + automountlocationcn: string; + automountmapautomountmapname: string; +}; + +export type AutomountkeyShowOptions = { + rights: boolean; + automountkey: string; + automountinformation?: string; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/automountlocation.ts b/src/services/requests/automountlocation.ts new file mode 100644 index 000000000..ce264b61e --- /dev/null +++ b/src/services/requests/automountlocation.ts @@ -0,0 +1,53 @@ +export type AutomountlocationAddArgs = { + cn: string; +}; + +export type AutomountlocationAddOptions = { + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomountlocationDelArgs = { + cn: string; +}; + +export type AutomountlocationDelOptions = { + continue: boolean; + version?: string; +}; + +export type AutomountlocationFindArgs = { + criteria?: string; +}; + +export type AutomountlocationFindOptions = { + cn?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type AutomountlocationShowArgs = { + cn: string; +}; + +export type AutomountlocationShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomountlocationTofilesArgs = { + cn: string; +}; + +export type AutomountlocationTofilesOptions = { + version?: string; +}; diff --git a/src/services/requests/automountmap.ts b/src/services/requests/automountmap.ts new file mode 100644 index 000000000..1006f92f5 --- /dev/null +++ b/src/services/requests/automountmap.ts @@ -0,0 +1,83 @@ +export type AutomountmapAddArgs = { + automountlocationcn: string; + automountmapname: string; +}; + +export type AutomountmapAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomountmapAddIndirectArgs = { + automountlocationcn: string; + automountmapname: string; +}; + +export type AutomountmapAddIndirectOptions = { + description?: string; + setattr?: string; + addattr?: string; + key: string; + parentmap?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomountmapDelArgs = { + automountlocationcn: string; + automountmapname: string; +}; + +export type AutomountmapDelOptions = { + continue: boolean; + version?: string; +}; + +export type AutomountmapFindArgs = { + automountlocationcn: string; + criteria?: string; +}; + +export type AutomountmapFindOptions = { + automountmapname?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type AutomountmapModArgs = { + automountlocationcn: string; + automountmapname: string; +}; + +export type AutomountmapModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type AutomountmapShowArgs = { + automountlocationcn: string; + automountmapname: string; +}; + +export type AutomountmapShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/ca.ts b/src/services/requests/ca.ts new file mode 100644 index 000000000..cca4936c5 --- /dev/null +++ b/src/services/requests/ca.ts @@ -0,0 +1,94 @@ +import { DN } from "../types/primitives"; + +export type CaAddArgs = { + cn: string; +}; + +export type CaAddOptions = { + description?: string; + ipacasubjectdn: DN; + setattr?: string; + addattr?: string; + chain: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CaDelArgs = { + cn: string; +}; + +export type CaDelOptions = { + continue: boolean; + version?: string; +}; + +export type CaDisableArgs = { + cn: string; +}; + +export type CaDisableOptions = { + version?: string; +}; + +export type CaEnableArgs = { + cn: string; +}; + +export type CaEnableOptions = { + version?: string; +}; + +export type CaFindArgs = { + criteria?: string; +}; + +export type CaFindOptions = { + cn?: string; + description?: string; + ipacaid?: string; + ipacasubjectdn?: DN; + ipacaissuerdn?: DN; + ipacarandomserialnumberversion?: number; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type CaIsEnabledArgs = null; + +export type CaIsEnabledOptions = { + version?: string; +}; + +export type CaModArgs = { + cn: string; +}; + +export type CaModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + rename?: string; +}; + +export type CaShowArgs = { + cn: string; +}; + +export type CaShowOptions = { + rights: boolean; + chain: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/caacl.ts b/src/services/requests/caacl.ts new file mode 100644 index 000000000..66714e1c0 --- /dev/null +++ b/src/services/requests/caacl.ts @@ -0,0 +1,224 @@ +export type CaaclAddArgs = { + cn: string; +}; + +export type CaaclAddOptions = { + description?: string; + ipaenabledflag?: boolean; + ipacacategory?: "all"; + ipacertprofilecategory?: "all"; + usercategory?: "all"; + hostcategory?: "all"; + servicecategory?: "all"; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type CaaclAddCaArgs = { + cn: string; +}; + +export type CaaclAddCaOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + ca?: string; +}; + +export type CaaclAddHostArgs = { + cn: string; +}; + +export type CaaclAddHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type CaaclAddProfileArgs = { + cn: string; +}; + +export type CaaclAddProfileOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + certprofile?: string; +}; + +export type CaaclAddServiceArgs = { + cn: string; +}; + +export type CaaclAddServiceOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + service?: string; +}; + +export type CaaclAddUserArgs = { + cn: string; +}; + +export type CaaclAddUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type CaaclDelArgs = { + cn: string; +}; + +export type CaaclDelOptions = { + continue: boolean; + version?: string; +}; + +export type CaaclDisableArgs = { + cn: string; +}; + +export type CaaclDisableOptions = { + version?: string; +}; + +export type CaaclEnableArgs = { + cn: string; +}; + +export type CaaclEnableOptions = { + version?: string; +}; + +export type CaaclFindArgs = { + criteria?: string; +}; + +export type CaaclFindOptions = { + cn?: string; + description?: string; + ipaenabledflag?: boolean; + ipacacategory?: "all"; + ipacertprofilecategory?: "all"; + usercategory?: "all"; + hostcategory?: "all"; + servicecategory?: "all"; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type CaaclModArgs = { + cn: string; +}; + +export type CaaclModOptions = { + description?: string; + ipaenabledflag?: boolean; + ipacacategory?: "all"; + ipacertprofilecategory?: "all"; + usercategory?: "all"; + hostcategory?: "all"; + servicecategory?: "all"; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type CaaclRemoveCaArgs = { + cn: string; +}; + +export type CaaclRemoveCaOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + ca?: string; +}; + +export type CaaclRemoveHostArgs = { + cn: string; +}; + +export type CaaclRemoveHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type CaaclRemoveProfileArgs = { + cn: string; +}; + +export type CaaclRemoveProfileOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + certprofile?: string; +}; + +export type CaaclRemoveServiceArgs = { + cn: string; +}; + +export type CaaclRemoveServiceOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + service?: string; +}; + +export type CaaclRemoveUserArgs = { + cn: string; +}; + +export type CaaclRemoveUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type CaaclShowArgs = { + cn: string; +}; + +export type CaaclShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/cert.ts b/src/services/requests/cert.ts new file mode 100644 index 000000000..f24967925 --- /dev/null +++ b/src/services/requests/cert.ts @@ -0,0 +1,111 @@ +import { + Certificate, + CertificateSigningRequest, + DateTime, + DN, + Principal, +} from "../types/primitives"; + +type CertificateStatus = + | "VALID" + | "INVALID" + | "REVOKED" + | "EXPIRED" + | "REVOKED_EXPIRED"; + +export type CertFindArgs = { + criteria?: string; +}; + +export type CertFindOptions = { + certificate?: Certificate; + issuer?: DN; + revocation_reason?: number; + cacn?: string; + subject?: string; + min_serial_number?: string; + max_serial_number?: string; + exactly?: boolean; + validnotafter_from?: DateTime; + validnotafter_to?: DateTime; + validnotbefore_from?: DateTime; + validnotbefore_to?: DateTime; + issuedon_from?: DateTime; + issuedon_to?: DateTime; + revokedon_from?: DateTime; + revokedon_to?: DateTime; + status?: CertificateStatus; + pkey_only?: boolean; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + no_user?: string; + host?: string; + no_host?: string; + service?: Principal; + no_service?: Principal; +}; + +export type CertRemoveHoldArgs = { + serial_number: string; +}; + +export type CertRemoveHoldOptions = { + cacn?: string; + version?: string; +}; + +export type CertRequestArgs = { + csr: CertificateSigningRequest; +}; + +export type CertRequestOptions = { + request_type: string; + profile_id?: string; + cacn?: string; + principal: Principal; + add: boolean; + chain: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CertRevokeArgs = { + serial_number: string; +}; + +export type CertRevokeOptions = { + revocation_reason: number; + cacn?: string; + version?: string; +}; + +export type CertShowArgs = { + serial_number: string; +}; + +export type CertShowOptions = { + cacn?: string; + out?: string; + chain: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type CertStatusArgs = { + request_id: string; +}; + +export type CertStatusOptions = { + cacn?: string; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/certmap.ts b/src/services/requests/certmap.ts new file mode 100644 index 000000000..670581765 --- /dev/null +++ b/src/services/requests/certmap.ts @@ -0,0 +1,11 @@ +import { Certificate } from "../types/primitives"; + +export type CertmapMatchArgs = { + certificate: Certificate; +}; + +export type CertmapMatchOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/certmapconfig.ts b/src/services/requests/certmapconfig.ts new file mode 100644 index 000000000..a6ba39bd7 --- /dev/null +++ b/src/services/requests/certmapconfig.ts @@ -0,0 +1,21 @@ +export type CertmapconfigModArgs = null; + +export type CertmapconfigModOptions = { + ipacertmappromptusername?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CertmapconfigShowArgs = null; + +export type CertmapconfigShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/certmaprule.ts b/src/services/requests/certmaprule.ts new file mode 100644 index 000000000..3225465e8 --- /dev/null +++ b/src/services/requests/certmaprule.ts @@ -0,0 +1,95 @@ +import { DNSName } from "../types/primitives"; + +export type CertmapruleAddArgs = { + cn: string; +}; + +export type CertmapruleAddOptions = { + description?: string; + ipacertmapmaprule?: string; + ipacertmapmatchrule?: string; + associateddomain?: DNSName; + ipacertmappriority?: number; + ipaenabledflag?: boolean; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CertmapruleDelArgs = { + cn: string; +}; + +export type CertmapruleDelOptions = { + continue: boolean; + version?: string; +}; + +export type CertmapruleDisableArgs = { + cn: string; +}; + +export type CertmapruleDisableOptions = { + version?: string; +}; + +export type CertmapruleEnableArgs = { + cn: string; +}; + +export type CertmapruleEnableOptions = { + version?: string; +}; + +export type CertmapruleFindArgs = { + criteria?: string; +}; + +export type CertmapruleFindOptions = { + cn?: string; + description?: string; + ipacertmapmaprule?: string; + ipacertmapmatchrule?: string; + associateddomain?: DNSName; + ipacertmappriority?: number; + ipaenabledflag?: boolean; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type CertmapruleModArgs = { + cn: string; +}; + +export type CertmapruleModOptions = { + description?: string; + ipacertmapmaprule?: string; + ipacertmapmatchrule?: string; + associateddomain?: DNSName; + ipacertmappriority?: number; + ipaenabledflag?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CertmapruleShowArgs = { + cn: string; +}; + +export type CertmapruleShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/certprofile.ts b/src/services/requests/certprofile.ts new file mode 100644 index 000000000..3ecdf0729 --- /dev/null +++ b/src/services/requests/certprofile.ts @@ -0,0 +1,66 @@ +export type CertprofileDelArgs = { + cn: string; +}; + +export type CertprofileDelOptions = { + continue: boolean; + version?: string; +}; + +export type CertprofileFindArgs = { + criteria?: string; +}; + +export type CertprofileFindOptions = { + cn?: string; + description?: string; + ipacertprofilestoreissued?: boolean; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type CertprofileImportArgs = { + cn: string; +}; + +export type CertprofileImportOptions = { + description: string; + ipacertprofilestoreissued: boolean; + file: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CertprofileModArgs = { + cn: string; +}; + +export type CertprofileModOptions = { + description?: string; + ipacertprofilestoreissued?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + file?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CertprofileShowArgs = { + cn: string; +}; + +export type CertprofileShowOptions = { + rights: boolean; + out?: string; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/class.ts b/src/services/requests/class.ts new file mode 100644 index 000000000..9bda4d6c4 --- /dev/null +++ b/src/services/requests/class.ts @@ -0,0 +1,20 @@ +export type ClassFindArgs = { + criteria?: string; +}; + +export type ClassFindOptions = { + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type ClassShowArgs = { + full_name: string; +}; + +export type ClassShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/command.ts b/src/services/requests/command.ts new file mode 100644 index 000000000..74380b5fc --- /dev/null +++ b/src/services/requests/command.ts @@ -0,0 +1,30 @@ +export type CommandDefaultsArgs = { + full_name: string; +}; + +export type CommandDefaultsOptions = { + params?: string; + kw?: Record; + version?: string; +}; + +export type CommandFindArgs = { + criteria?: string; +}; + +export type CommandFindOptions = { + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type CommandShowArgs = { + full_name: string; +}; + +export type CommandShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/config.ts b/src/services/requests/config.ts new file mode 100644 index 000000000..e7282618f --- /dev/null +++ b/src/services/requests/config.ts @@ -0,0 +1,66 @@ +type IpaConfigString = + | "AllowNThash" + | "KDC:Disable Last Success" + | "KDC:Disable Lockout" + | "KDC:Disable Default Preauth for SPNs" + | "EnforceLDAPOTP" + | "SubID:Disable"; + +export type IpaKrbAuthzData = "MS-PAC" | "PAD" | "nfs:NONE"; + +export type IpaUserAuthType = + | "password" + | "radius" + | "otp" + | "pkinit" + | "hardened" + | "idp" + | "passkey" + | "disabled"; + +export type ConfigModArgs = null; + +export type ConfigModOptions = { + ipamaxusernamelength?: number; + ipamaxhostnamelength?: number; + ipahomesrootdir?: string; + ipadefaultloginshell?: string; + ipadefaultprimarygroup?: string; + ipadefaultemaildomain?: string; + ipasearchtimelimit?: number; + ipasearchrecordslimit?: number; + ipausersearchfields?: string; + ipagroupsearchfields?: string; + ipamigrationenabled?: boolean; + ipagroupobjectclasses?: string; + ipauserobjectclasses?: string; + ipapwdexpadvnotify?: number; + ipaconfigstring?: IpaConfigString[]; + ipaselinuxusermaporder?: string; + ipaselinuxusermapdefault?: string; + ipakrbauthzdata?: IpaKrbAuthzData[]; + ipauserauthtype?: IpaUserAuthType[]; + ipauserdefaultsubordinateid?: boolean; + ca_renewal_master_server?: string; + ipadomainresolutionorder?: string; + enable_sid?: boolean; + add_sids?: boolean; + netbios_name?: string; + ipaservicekeytypesize?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type ConfigShowArgs = null; + +export type ConfigShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/cosentry.ts b/src/services/requests/cosentry.ts new file mode 100644 index 000000000..3e55c9590 --- /dev/null +++ b/src/services/requests/cosentry.ts @@ -0,0 +1,67 @@ +import { DN } from "../types/primitives"; + +export type CosentryAddArgs = { + cn: string; +}; + +export type CosentryAddOptions = { + krbpwdpolicyreference: DN; + cospriority: number; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CosentryDelArgs = { + cn: string; +}; + +export type CosentryDelOptions = { + continue: boolean; + version?: string; +}; + +export type CosentryFindArgs = { + criteria?: string; +}; + +export type CosentryFindOptions = { + cn?: string; + krbpwdpolicyreference?: DN; + cospriority?: number; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type CosentryModArgs = { + cn: string; +}; + +export type CosentryModOptions = { + krbpwdpolicyreference?: DN; + cospriority?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type CosentryShowArgs = { + cn: string; +}; + +export type CosentryShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/delegation.ts b/src/services/requests/delegation.ts new file mode 100644 index 000000000..07fc23f3a --- /dev/null +++ b/src/services/requests/delegation.ts @@ -0,0 +1,61 @@ +export type DelegationAddArgs = { + aciname: string; +}; + +export type DelegationAddOptions = { + permissions?: string; + attrs: string; + memberof: string; + group: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DelegationDelArgs = { + aciname: string; +}; + +export type DelegationDelOptions = { + version?: string; +}; + +export type DelegationFindArgs = { + criteria?: string; +}; + +export type DelegationFindOptions = { + aciname?: string; + permissions?: string; + attrs?: string; + memberof?: string; + group?: string; + pkey_only?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DelegationModArgs = { + aciname: string; +}; + +export type DelegationModOptions = { + permissions?: string; + attrs?: string; + memberof?: string; + group?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DelegationShowArgs = { + aciname: string; +}; + +export type DelegationShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/dns.ts b/src/services/requests/dns.ts new file mode 100644 index 000000000..7429509df --- /dev/null +++ b/src/services/requests/dns.ts @@ -0,0 +1,26 @@ +export type IdnsForwardPolicy = "only" | "first" | "none"; + +export type DnsClass = "IN" | "CS" | "CH" | "HS"; + +export type DnsIsEnabledArgs = null; + +export type DnsIsEnabledOptions = { + version?: string; +}; + +export type DnsResolveArgs = { + hostname: string; +}; + +export type DnsResolveOptions = { + version?: string; +}; + +export type DnsUpdateSystemRecordsArgs = null; + +export type DnsUpdateSystemRecordsOptions = { + dry_run: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/dnsconfig.ts b/src/services/requests/dnsconfig.ts new file mode 100644 index 000000000..8450bc20a --- /dev/null +++ b/src/services/requests/dnsconfig.ts @@ -0,0 +1,27 @@ +import { IdnsForwardPolicy } from "./dns"; + +export type DnsconfigModArgs = null; + +export type DnsconfigModOptions = { + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + idnsallowsyncptr?: boolean; + idnszonerefresh?: number; + ipadnsversion?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnsconfigShowArgs = null; + +export type DnsconfigShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/dnsforwardzone.ts b/src/services/requests/dnsforwardzone.ts new file mode 100644 index 000000000..3412647e8 --- /dev/null +++ b/src/services/requests/dnsforwardzone.ts @@ -0,0 +1,105 @@ +import { DNSName } from "../types/primitives"; +import { IdnsForwardPolicy } from "./dns"; + +export type DnsforwardzoneAddArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneAddOptions = { + name_from_ip?: string; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + setattr?: string; + addattr?: string; + skip_overlap_check: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnsforwardzoneAddPermissionArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneAddPermissionOptions = { + version?: string; +}; + +export type DnsforwardzoneDelArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneDelOptions = { + continue: boolean; + version?: string; +}; + +export type DnsforwardzoneDisableArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneDisableOptions = { + version?: string; +}; + +export type DnsforwardzoneEnableArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneEnableOptions = { + version?: string; +}; + +export type DnsforwardzoneFindArgs = { + criteria?: string; +}; + +export type DnsforwardzoneFindOptions = { + idnsname?: DNSName; + name_from_ip?: string; + idnszoneactive?: boolean; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type DnsforwardzoneModArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneModOptions = { + name_from_ip?: string; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnsforwardzoneRemovePermissionArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneRemovePermissionOptions = { + version?: string; +}; + +export type DnsforwardzoneShowArgs = { + idnsname: DNSName; +}; + +export type DnsforwardzoneShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/dnsrecord.ts b/src/services/requests/dnsrecord.ts new file mode 100644 index 000000000..03a8b0669 --- /dev/null +++ b/src/services/requests/dnsrecord.ts @@ -0,0 +1,340 @@ +import { DNSName, Decimal } from "../types/primitives"; +import { DnsClass } from "./dns"; + +export type DnsrecordAddArgs = { + dnszoneidnsname: DNSName; + idnsname: DNSName; +}; + +export type DnsrecordAddOptions = { + dnsttl?: number; + dnsclass?: DnsClass; + arecord?: string; + a_part_ip_address?: string; + a_extra_create_reverse?: boolean; + aaaarecord?: string; + aaaa_part_ip_address?: string; + aaaa_extra_create_reverse?: boolean; + a6record?: string; + a6_part_data?: string; + afsdbrecord?: string; + afsdb_part_subtype?: number; + afsdb_part_hostname?: DNSName; + aplrecord?: string; + certrecord?: string; + cert_part_type?: number; + cert_part_key_tag?: number; + cert_part_algorithm?: number; + cert_part_certificate_or_crl?: string; + cnamerecord?: string; + cname_part_hostname?: DNSName; + dhcidrecord?: string; + dlvrecord?: string; + dlv_part_key_tag?: number; + dlv_part_algorithm?: number; + dlv_part_digest_type?: number; + dlv_part_digest?: string; + dnamerecord?: string; + dname_part_target?: DNSName; + dsrecord?: string; + ds_part_key_tag?: number; + ds_part_algorithm?: number; + ds_part_digest_type?: number; + ds_part_digest?: string; + hiprecord?: string; + ipseckeyrecord?: string; + keyrecord?: string; + kxrecord?: string; + kx_part_preference?: number; + kx_part_exchanger?: DNSName; + locrecord?: string; + loc_part_lat_deg?: number; + loc_part_lat_min?: number; + loc_part_lat_sec?: Decimal; + loc_part_lat_dir?: "N" | "S"; + loc_part_lon_deg?: number; + loc_part_lon_min?: number; + loc_part_lon_sec?: Decimal; + loc_part_lon_dir?: "E" | "W"; + loc_part_altitude?: Decimal; + loc_part_size?: Decimal; + loc_part_h_precision?: Decimal; + loc_part_v_precision?: Decimal; + mxrecord?: string; + mx_part_preference?: number; + mx_part_exchanger?: DNSName; + naptrrecord?: string; + naptr_part_order?: number; + naptr_part_preference?: number; + naptr_part_flags?: string; + naptr_part_service?: string; + naptr_part_regexp?: string; + naptr_part_replacement?: string; + nsrecord?: string; + ns_part_hostname?: DNSName; + nsecrecord?: string; + ptrrecord?: string; + ptr_part_hostname?: DNSName; + rrsigrecord?: string; + rprecord?: string; + sigrecord?: string; + spfrecord?: string; + srvrecord?: string; + srv_part_priority?: number; + srv_part_weight?: number; + srv_part_port?: number; + srv_part_target?: DNSName; + sshfprecord?: string; + sshfp_part_algorithm?: number; + sshfp_part_fp_type?: number; + sshfp_part_fingerprint?: string; + tlsarecord?: string; + tlsa_part_cert_usage?: number; + tlsa_part_selector?: number; + tlsa_part_matching_type?: number; + tlsa_part_cert_association_data?: string; + txtrecord?: string; + txt_part_data?: string; + urirecord?: string; + uri_part_priority?: number; + uri_part_weight?: number; + uri_part_target?: string; + setattr?: string; + addattr?: string; + force: boolean; + structured: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnsrecordDelArgs = { + dnszoneidnsname: DNSName; + idnsname: DNSName; +}; + +export type DnsrecordDelOptions = { + dnsttl?: number; + dnsclass?: DnsClass; + arecord?: string; + aaaarecord?: string; + a6record?: string; + afsdbrecord?: string; + aplrecord?: string; + certrecord?: string; + cnamerecord?: string; + dhcidrecord?: string; + dlvrecord?: string; + dnamerecord?: string; + dsrecord?: string; + hiprecord?: string; + ipseckeyrecord?: string; + keyrecord?: string; + kxrecord?: string; + locrecord?: string; + mxrecord?: string; + naptrrecord?: string; + nsrecord?: string; + nsecrecord?: string; + ptrrecord?: string; + rrsigrecord?: string; + rprecord?: string; + sigrecord?: string; + spfrecord?: string; + srvrecord?: string; + sshfprecord?: string; + tlsarecord?: string; + txtrecord?: string; + urirecord?: string; + del_all: boolean; + structured: boolean; + raw: boolean; + version?: string; +}; + +export type DnsrecordDelentryArgs = { + dnszoneidnsname: DNSName; + idnsname: DNSName; +}; + +export type DnsrecordDelentryOptions = { + continue: boolean; + version?: string; +}; + +export type DnsrecordFindArgs = { + dnszoneidnsname: DNSName; + criteria?: string; +}; + +export type DnsrecordFindOptions = { + idnsname?: DNSName; + dnsttl?: number; + dnsclass?: DnsClass; + arecord?: string; + aaaarecord?: string; + a6record?: string; + afsdbrecord?: string; + aplrecord?: string; + certrecord?: string; + cnamerecord?: string; + dhcidrecord?: string; + dlvrecord?: string; + dnamerecord?: string; + dsrecord?: string; + hiprecord?: string; + ipseckeyrecord?: string; + keyrecord?: string; + kxrecord?: string; + locrecord?: string; + mxrecord?: string; + naptrrecord?: string; + nsrecord?: string; + nsecrecord?: string; + ptrrecord?: string; + rrsigrecord?: string; + rprecord?: string; + sigrecord?: string; + spfrecord?: string; + srvrecord?: string; + sshfprecord?: string; + tlsarecord?: string; + txtrecord?: string; + urirecord?: string; + timelimit?: number; + sizelimit?: number; + structured: boolean; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type DnsrecordModArgs = { + dnszoneidnsname: DNSName; + idnsname: DNSName; +}; + +export type DnsrecordModOptions = { + dnsttl?: number; + dnsclass?: DnsClass; + arecord?: string; + a_part_ip_address?: string; + aaaarecord?: string; + aaaa_part_ip_address?: string; + a6record?: string; + a6_part_data?: string; + afsdbrecord?: string; + afsdb_part_subtype?: number; + afsdb_part_hostname?: DNSName; + aplrecord?: string; + certrecord?: string; + cert_part_type?: number; + cert_part_key_tag?: number; + cert_part_algorithm?: number; + cert_part_certificate_or_crl?: string; + cnamerecord?: string; + cname_part_hostname?: DNSName; + dhcidrecord?: string; + dlvrecord?: string; + dlv_part_key_tag?: number; + dlv_part_algorithm?: number; + dlv_part_digest_type?: number; + dlv_part_digest?: string; + dnamerecord?: string; + dname_part_target?: DNSName; + dsrecord?: string; + ds_part_key_tag?: number; + ds_part_algorithm?: number; + ds_part_digest_type?: number; + ds_part_digest?: string; + hiprecord?: string; + ipseckeyrecord?: string; + keyrecord?: string; + kxrecord?: string; + kx_part_preference?: number; + kx_part_exchanger?: DNSName; + locrecord?: string; + loc_part_lat_deg?: number; + loc_part_lat_min?: number; + loc_part_lat_sec?: Decimal; + loc_part_lat_dir?: "N" | "S"; + loc_part_lon_deg?: number; + loc_part_lon_min?: number; + loc_part_lon_sec?: Decimal; + loc_part_lon_dir?: "E" | "W"; + loc_part_altitude?: Decimal; + loc_part_size?: Decimal; + loc_part_h_precision?: Decimal; + loc_part_v_precision?: Decimal; + mxrecord?: string; + mx_part_preference?: number; + mx_part_exchanger?: DNSName; + naptrrecord?: string; + naptr_part_order?: number; + naptr_part_preference?: number; + naptr_part_flags?: string; + naptr_part_service?: string; + naptr_part_regexp?: string; + naptr_part_replacement?: string; + nsrecord?: string; + ns_part_hostname?: DNSName; + nsecrecord?: string; + ptrrecord?: string; + ptr_part_hostname?: DNSName; + rrsigrecord?: string; + rprecord?: string; + sigrecord?: string; + spfrecord?: string; + srvrecord?: string; + srv_part_priority?: number; + srv_part_weight?: number; + srv_part_port?: number; + srv_part_target?: DNSName; + sshfprecord?: string; + sshfp_part_algorithm?: number; + sshfp_part_fp_type?: number; + sshfp_part_fingerprint?: string; + tlsarecord?: string; + tlsa_part_cert_usage?: number; + tlsa_part_selector?: number; + tlsa_part_matching_type?: number; + tlsa_part_cert_association_data?: string; + txtrecord?: string; + txt_part_data?: string; + urirecord?: string; + uri_part_priority?: number; + uri_part_weight?: number; + uri_part_target?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + structured: boolean; + all: boolean; + raw: boolean; + version?: string; + rename?: DNSName; +}; + +export type DnsrecordShowArgs = { + dnszoneidnsname: DNSName; + idnsname: DNSName; +}; + +export type DnsrecordShowOptions = { + rights: boolean; + structured: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnsrecordSplitPartsArgs = { + name: string; + value: string; +}; + +export type DnsrecordSplitPartsOptions = { + version?: string; +}; diff --git a/src/services/requests/dnsserver.ts b/src/services/requests/dnsserver.ts new file mode 100644 index 000000000..7804d65eb --- /dev/null +++ b/src/services/requests/dnsserver.ts @@ -0,0 +1,47 @@ +import { DNSName } from "../types/primitives"; +import { IdnsForwardPolicy } from "./dns"; + +export type DnsserverFindArgs = { + criteria?: string; +}; + +export type DnsserverFindOptions = { + idnsserverid?: string; + idnssoamname?: DNSName; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type DnsserverModArgs = { + idnsserverid: string; +}; + +export type DnsserverModOptions = { + idnssoamname?: DNSName; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnsserverShowArgs = { + idnsserverid: string; +}; + +export type DnsserverShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/dnszone.ts b/src/services/requests/dnszone.ts new file mode 100644 index 000000000..da3a11447 --- /dev/null +++ b/src/services/requests/dnszone.ts @@ -0,0 +1,161 @@ +import { DNSName } from "../types/primitives"; +import { DnsClass, IdnsForwardPolicy } from "./dns"; + +export type DnszoneAddArgs = { + idnsname: DNSName; +}; + +export type DnszoneAddOptions = { + name_from_ip?: string; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + idnssoamname?: DNSName; + idnssoarname: DNSName; + idnssoaserial?: number; + idnssoarefresh: number; + idnssoaretry: number; + idnssoaexpire: number; + idnssoaminimum: number; + dnsttl?: number; + dnsdefaultttl?: number; + dnsclass?: DnsClass; + idnsupdatepolicy?: string; + idnsallowdynupdate?: boolean; + idnsallowquery?: string; + idnsallowtransfer?: string; + idnsallowsyncptr?: boolean; + idnssecinlinesigning?: boolean; + nsec3paramrecord?: string; + setattr?: string; + addattr?: string; + skip_overlap_check: boolean; + force: boolean; + skip_nameserver_check: boolean; + ip_address?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnszoneAddPermissionArgs = { + idnsname: DNSName; +}; + +export type DnszoneAddPermissionOptions = { + version?: string; +}; + +export type DnszoneDelArgs = { + idnsname: DNSName; +}; + +export type DnszoneDelOptions = { + continue: boolean; + version?: string; +}; + +export type DnszoneDisableArgs = { + idnsname: DNSName; +}; + +export type DnszoneDisableOptions = { + version?: string; +}; + +export type DnszoneEnableArgs = { + idnsname: DNSName; +}; + +export type DnszoneEnableOptions = { + version?: string; +}; + +export type DnszoneFindArgs = { + criteria?: string; +}; + +export type DnszoneFindOptions = { + idnsname?: DNSName; + name_from_ip?: string; + idnszoneactive?: boolean; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + idnssoamname?: DNSName; + idnssoarname?: DNSName; + idnssoaserial?: number; + idnssoarefresh?: number; + idnssoaretry?: number; + idnssoaexpire?: number; + idnssoaminimum?: number; + dnsttl?: number; + dnsdefaultttl?: number; + dnsclass?: DnsClass; + idnsupdatepolicy?: string; + idnsallowdynupdate?: boolean; + idnsallowquery?: string; + idnsallowtransfer?: string; + idnsallowsyncptr?: boolean; + idnssecinlinesigning?: boolean; + nsec3paramrecord?: string; + timelimit?: number; + sizelimit?: number; + forward_only: boolean; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type DnszoneModArgs = { + idnsname: DNSName; +}; + +export type DnszoneModOptions = { + name_from_ip?: string; + idnsforwarders?: string; + idnsforwardpolicy?: IdnsForwardPolicy; + idnssoamname?: DNSName; + idnssoarname?: DNSName; + idnssoaserial?: number; + idnssoarefresh?: number; + idnssoaretry?: number; + idnssoaexpire?: number; + idnssoaminimum?: number; + dnsttl?: number; + dnsdefaultttl?: number; + dnsclass?: DnsClass; + idnsupdatepolicy?: string; + idnsallowdynupdate?: boolean; + idnsallowquery?: string; + idnsallowtransfer?: string; + idnsallowsyncptr?: boolean; + idnssecinlinesigning?: boolean; + nsec3paramrecord?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + force: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type DnszoneRemovePermissionArgs = { + idnsname: DNSName; +}; + +export type DnszoneRemovePermissionOptions = { + version?: string; +}; + +export type DnszoneShowArgs = { + idnsname: DNSName; +}; + +export type DnszoneShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/group.ts b/src/services/requests/group.ts new file mode 100644 index 000000000..a36549fe3 --- /dev/null +++ b/src/services/requests/group.ts @@ -0,0 +1,168 @@ +import { Principal } from "../types/primitives"; + +export type GroupAddArgs = { + cn: string; +}; + +export type GroupAddOptions = { + description?: string; + gidnumber?: number; + setattr?: string; + addattr?: string; + nonposix: boolean; + external: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type GroupAddMemberArgs = { + cn: string; +}; + +export type GroupAddMemberOptions = { + ipaexternalmember?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + service?: string; + idoverrideuser?: string; +}; + +export type GroupAddMemberManagerArgs = { + cn: string; +}; + +export type GroupAddMemberManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type GroupDelArgs = { + cn: string; +}; + +export type GroupDelOptions = { + continue: boolean; + version?: string; +}; + +export type GroupDetachArgs = { + cn: string; +}; + +export type GroupDetachOptions = { + version?: string; +}; + +export type GroupFindArgs = { + criteria?: string; +}; + +export type GroupFindOptions = { + cn?: string; + description?: string; + gidnumber?: number; + timelimit?: number; + sizelimit?: number; + private: boolean; + posix: boolean; + external: boolean; + nonposix: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + user?: string; + no_user?: string; + group?: string; + no_group?: string; + service?: Principal; + no_service?: Principal; + idoverrideuser?: string; + no_idoverrideuser?: string; + in_group?: string; + not_in_group?: string; + in_netgroup?: string; + not_in_netgroup?: string; + in_role?: string; + not_in_role?: string; + in_hbacrule?: string; + not_in_hbacrule?: string; + in_sudorule?: string; + not_in_sudorule?: string; + membermanager_user?: string; + not_membermanager_user?: string; + membermanager_group?: string; + not_membermanager_group?: string; +}; + +export type GroupModArgs = { + cn: string; +}; + +export type GroupModOptions = { + description?: string; + gidnumber?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + posix: boolean; + external: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type GroupRemoveMemberArgs = { + cn: string; +}; + +export type GroupRemoveMemberOptions = { + ipaexternalmember?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + service?: string; + idoverrideuser?: string; +}; + +export type GroupRemoveMemberManagerArgs = { + cn: string; +}; + +export type GroupRemoveMemberManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type GroupShowArgs = { + cn: string; +}; + +export type GroupShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/hbacrule.ts b/src/services/requests/hbacrule.ts new file mode 100644 index 000000000..adfa3828b --- /dev/null +++ b/src/services/requests/hbacrule.ts @@ -0,0 +1,208 @@ +export type HbacruleAddArgs = { + cn: string; +}; + +export type HbacruleAddOptions = { + accessruletype: "allow" | "deny"; + usercategory?: "all"; + hostcategory?: "all"; + sourcehostcategory?: "all"; + servicecategory?: "all"; + description?: string; + ipaenabledflag?: boolean; + externalhost?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HbacruleAddHostArgs = { + cn: string; +}; + +export type HbacruleAddHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type HbacruleAddServiceArgs = { + cn: string; +}; + +export type HbacruleAddServiceOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + hbacsvc?: string; + hbacsvcgroup?: string; +}; + +export type HbacruleAddSourcehostArgs = { + cn: string; +}; + +export type HbacruleAddSourcehostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type HbacruleAddUserArgs = { + cn: string; +}; + +export type HbacruleAddUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type HbacruleDelArgs = { + cn: string; +}; + +export type HbacruleDelOptions = { + continue: boolean; + version?: string; +}; + +export type HbacruleDisableArgs = { + cn: string; +}; + +export type HbacruleDisableOptions = { + version?: string; +}; + +export type HbacruleEnableArgs = { + cn: string; +}; + +export type HbacruleEnableOptions = { + version?: string; +}; + +export type HbacruleFindArgs = { + criteria?: string; +}; + +export type HbacruleFindOptions = { + cn?: string; + accessruletype?: "allow" | "deny"; + usercategory?: "all"; + hostcategory?: "all"; + sourcehostcategory?: "all"; + servicecategory?: "all"; + description?: string; + ipaenabledflag?: boolean; + externalhost?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type HbacruleModArgs = { + cn: string; +}; + +export type HbacruleModOptions = { + accessruletype?: "allow" | "deny"; + usercategory?: "all"; + hostcategory?: "all"; + sourcehostcategory?: "all"; + servicecategory?: "all"; + description?: string; + ipaenabledflag?: boolean; + externalhost?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type HbacruleRemoveHostArgs = { + cn: string; +}; + +export type HbacruleRemoveHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type HbacruleRemoveServiceArgs = { + cn: string; +}; + +export type HbacruleRemoveServiceOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + hbacsvc?: string; + hbacsvcgroup?: string; +}; + +export type HbacruleRemoveSourcehostArgs = { + cn: string; +}; + +export type HbacruleRemoveSourcehostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type HbacruleRemoveUserArgs = { + cn: string; +}; + +export type HbacruleRemoveUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type HbacruleShowArgs = { + cn: string; +}; + +export type HbacruleShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/hbacsvc.ts b/src/services/requests/hbacsvc.ts new file mode 100644 index 000000000..2d05ded05 --- /dev/null +++ b/src/services/requests/hbacsvc.ts @@ -0,0 +1,66 @@ +export type HbacsvcAddArgs = { + cn: string; +}; + +export type HbacsvcAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HbacsvcDelArgs = { + cn: string; +}; + +export type HbacsvcDelOptions = { + continue: boolean; + version?: string; +}; + +export type HbacsvcFindArgs = { + criteria?: string; +}; + +export type HbacsvcFindOptions = { + cn?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type HbacsvcModArgs = { + cn: string; +}; + +export type HbacsvcModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HbacsvcShowArgs = { + cn: string; +}; + +export type HbacsvcShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/hbacsvcgroup.ts b/src/services/requests/hbacsvcgroup.ts new file mode 100644 index 000000000..fd67e61f7 --- /dev/null +++ b/src/services/requests/hbacsvcgroup.ts @@ -0,0 +1,90 @@ +export type HbacsvcgroupAddArgs = { + cn: string; +}; + +export type HbacsvcgroupAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HbacsvcgroupAddMemberArgs = { + cn: string; +}; + +export type HbacsvcgroupAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + hbacsvc?: string; +}; + +export type HbacsvcgroupDelArgs = { + cn: string; +}; + +export type HbacsvcgroupDelOptions = { + continue: boolean; + version?: string; +}; + +export type HbacsvcgroupFindArgs = { + criteria?: string; +}; + +export type HbacsvcgroupFindOptions = { + cn?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type HbacsvcgroupModArgs = { + cn: string; +}; + +export type HbacsvcgroupModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HbacsvcgroupRemoveMemberArgs = { + cn: string; +}; + +export type HbacsvcgroupRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + hbacsvc?: string; +}; + +export type HbacsvcgroupShowArgs = { + cn: string; +}; + +export type HbacsvcgroupShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/host.ts b/src/services/requests/host.ts new file mode 100644 index 000000000..1db7b8d63 --- /dev/null +++ b/src/services/requests/host.ts @@ -0,0 +1,332 @@ +import { Certificate, Principal } from "../types/primitives"; + +export type IpaKrbPrincipalAuthind = + | "radius" + | "otp" + | "pkinit" + | "hardened" + | "idp" + | "passkey"; + +export type HostAddArgs = { + fqdn: string; +}; + +export type HostAddOptions = { + description?: string; + l?: string; + nshostlocation?: string; + nshardwareplatform?: string; + nsosversion?: string; + userpassword?: string; + random?: boolean; + usercertificate?: Certificate; + macaddress?: string; + ipasshpubkey?: string; + userclass?: string; + ipaassignedidview?: string; + krbprincipalauthind?: IpaKrbPrincipalAuthind; + ipakrbrequirespreauth?: boolean; + ipakrbokasdelegate?: boolean; + ipakrboktoauthasdelegate?: boolean; + setattr?: string; + addattr?: string; + force: boolean; + no_reverse: boolean; + ip_address?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HostAddCertArgs = { + fqdn: string; +}; + +export type HostAddCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type HostAddDelegationArgs = { + fqdn: string; + memberprincipal: string; +}; + +export type HostAddDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HostAddManagedbyArgs = { + fqdn: string; +}; + +export type HostAddManagedbyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; +}; + +export type HostAddPrincipalArgs = { + fqdn: string; + krbprincipalname: Principal; +}; + +export type HostAddPrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HostAllowAddDelegationArgs = { + fqdn: string; +}; + +export type HostAllowAddDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type HostAllowCreateKeytabArgs = { + fqdn: string; +}; + +export type HostAllowCreateKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type HostAllowRetrieveKeytabArgs = { + fqdn: string; +}; + +export type HostAllowRetrieveKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type HostDelArgs = { + fqdn: string; +}; + +export type HostDelOptions = { + continue: boolean; + updatedns?: boolean; + version?: string; +}; + +export type HostDisableArgs = { + fqdn: string; +}; + +export type HostDisableOptions = { + version?: string; +}; + +export type HostDisallowAddDelegationArgs = { + fqdn: string; +}; + +export type HostDisallowAddDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type HostDisallowCreateKeytabArgs = { + fqdn: string; +}; + +export type HostDisallowCreateKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type HostDisallowRetrieveKeytabArgs = { + fqdn: string; +}; + +export type HostDisallowRetrieveKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type HostFindArgs = { + criteria?: string; +}; + +export type HostFindOptions = { + fqdn?: string; + description?: string; + l?: string; + nshostlocation?: string; + nshardwareplatform?: string; + nsosversion?: string; + usercertificate?: Certificate; + macaddress?: string; + userclass?: string; + ipaassignedidview?: string; + krbprincipalauthind?: IpaKrbPrincipalAuthind; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + in_hostgroup?: string; + not_in_hostgroup?: string; + in_netgroup?: string; + not_in_netgroup?: string; + in_role?: string; + not_in_role?: string; + in_hbacrule?: string; + not_in_hbacrule?: string; + in_sudorule?: string; + not_in_sudorule?: string; + enroll_by_user?: string; + not_enroll_by_user?: string; + man_by_host?: string; + not_man_by_host?: string; + man_host?: string; + not_man_host?: string; +}; + +export type HostModArgs = { + fqdn: string; +}; + +export type HostModOptions = { + description?: string; + l?: string; + nshostlocation?: string; + nshardwareplatform?: string; + nsosversion?: string; + userpassword?: string; + random?: boolean; + usercertificate?: Certificate; + krbprincipalname?: Principal; + macaddress?: string; + ipasshpubkey?: string; + userclass?: string; + ipaassignedidview?: string; + krbprincipalauthind?: IpaKrbPrincipalAuthind; + ipakrbrequirespreauth?: boolean; + ipakrbokasdelegate?: boolean; + ipakrboktoauthasdelegate?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + updatedns?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HostRemoveCertArgs = { + fqdn: string; +}; + +export type HostRemoveCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type HostRemoveDelegationArgs = { + fqdn: string; + memberprincipal: string; +}; + +export type HostRemoveDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HostRemoveManagedbyArgs = { + fqdn: string; +}; + +export type HostRemoveManagedbyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; +}; + +export type HostRemovePrincipalArgs = { + fqdn: string; + krbprincipalname: Principal; +}; + +export type HostRemovePrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HostShowArgs = { + fqdn: string; +}; + +export type HostShowOptions = { + rights: boolean; + out?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/hostgroup.ts b/src/services/requests/hostgroup.ts new file mode 100644 index 000000000..515e8b0f4 --- /dev/null +++ b/src/services/requests/hostgroup.ts @@ -0,0 +1,135 @@ +export type HostgroupAddArgs = { + cn: string; +}; + +export type HostgroupAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type HostgroupAddMemberArgs = { + cn: string; +}; + +export type HostgroupAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type HostgroupAddMemberManagerArgs = { + cn: string; +}; + +export type HostgroupAddMemberManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type HostgroupDelArgs = { + cn: string; +}; + +export type HostgroupDelOptions = { + continue: boolean; + version?: string; +}; + +export type HostgroupFindArgs = { + criteria?: string; +}; + +export type HostgroupFindOptions = { + cn?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + host?: string; + no_host?: string; + hostgroup?: string; + no_hostgroup?: string; + in_hostgroup?: string; + not_in_hostgroup?: string; + in_netgroup?: string; + not_in_netgroup?: string; + in_hbacrule?: string; + not_in_hbacrule?: string; + in_sudorule?: string; + not_in_sudorule?: string; + membermanager_user?: string; + not_membermanager_user?: string; + membermanager_group?: string; + not_membermanager_group?: string; +}; + +export type HostgroupModArgs = { + cn: string; +}; + +export type HostgroupModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type HostgroupRemoveMemberArgs = { + cn: string; +}; + +export type HostgroupRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type HostgroupRemoveMemberManagerArgs = { + cn: string; +}; + +export type HostgroupRemoveMemberManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type HostgroupShowArgs = { + cn: string; +}; + +export type HostgroupShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/idoverridegroup.ts b/src/services/requests/idoverridegroup.ts new file mode 100644 index 000000000..97d276fdc --- /dev/null +++ b/src/services/requests/idoverridegroup.ts @@ -0,0 +1,79 @@ +export type IdoverridegroupAddArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverridegroupAddOptions = { + description?: string; + cn?: string; + gidnumber?: number; + setattr?: string; + addattr?: string; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type IdoverridegroupDelArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverridegroupDelOptions = { + continue: boolean; + fallback_to_ldap?: boolean; + version?: string; +}; + +export type IdoverridegroupFindArgs = { + idviewcn: string; + criteria?: string; +}; + +export type IdoverridegroupFindOptions = { + ipaanchoruuid?: string; + description?: string; + cn?: string; + gidnumber?: number; + timelimit?: number; + sizelimit?: number; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type IdoverridegroupModArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverridegroupModOptions = { + description?: string; + cn?: string; + gidnumber?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + rename?: string; +}; + +export type IdoverridegroupShowArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverridegroupShowOptions = { + rights: boolean; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/idoverrideuser.ts b/src/services/requests/idoverrideuser.ts new file mode 100644 index 000000000..1a666f969 --- /dev/null +++ b/src/services/requests/idoverrideuser.ts @@ -0,0 +1,132 @@ +import { Certificate } from "../types/primitives"; + +export type IdoverrideuserAddArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverrideuserAddOptions = { + description?: string; + uid?: string; + uidnumber?: number; + gecos?: string; + gidnumber?: number; + homedirectory?: string; + loginshell?: string; + ipaoriginaluid?: string; + ipasshpubkey?: string; + usercertificate?: Certificate; + setattr?: string; + addattr?: string; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type IdoverrideuserAddCertArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverrideuserAddCertOptions = { + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type IdoverrideuserDelArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverrideuserDelOptions = { + continue: boolean; + fallback_to_ldap?: boolean; + version?: string; +}; + +export type IdoverrideuserFindArgs = { + idviewcn: string; + criteria?: string; +}; + +export type IdoverrideuserFindOptions = { + ipaanchoruuid?: string; + description?: string; + uid?: string; + uidnumber?: number; + gecos?: string; + gidnumber?: number; + homedirectory?: string; + loginshell?: string; + ipaoriginaluid?: string; + timelimit?: number; + sizelimit?: number; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type IdoverrideuserModArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverrideuserModOptions = { + description?: string; + uid?: string; + uidnumber?: number; + gecos?: string; + gidnumber?: number; + homedirectory?: string; + loginshell?: string; + ipaoriginaluid?: string; + ipasshpubkey?: string; + usercertificate?: Certificate; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type IdoverrideuserRemoveCertArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverrideuserRemoveCertOptions = { + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type IdoverrideuserShowArgs = { + idviewcn: string; + ipaanchoruuid: string; +}; + +export type IdoverrideuserShowOptions = { + rights: boolean; + fallback_to_ldap?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/idp.ts b/src/services/requests/idp.ts new file mode 100644 index 000000000..38f0cab77 --- /dev/null +++ b/src/services/requests/idp.ts @@ -0,0 +1,95 @@ +type IdpProvider = "google" | "github" | "microsoft" | "okta" | "keycloak"; + +export type IdpAddArgs = { + cn: string; +}; + +export type IdpAddOptions = { + ipaidpauthendpoint?: string; + ipaidpdevauthendpoint?: string; + ipaidptokenendpoint?: string; + ipaidpuserinfoendpoint?: string; + ipaidpkeysendpoint?: string; + ipaidpissuerurl?: string; + ipaidpclientid: string; + ipaidpclientsecret?: string; + ipaidpscope?: string; + ipaidpsub?: string; + setattr?: string; + addattr?: string; + ipaidpprovider?: IdpProvider; + ipaidporg?: string; + ipaidpbaseurl?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type IdpDelArgs = { + cn: string; +}; + +export type IdpDelOptions = { + continue: boolean; + version?: string; +}; + +export type IdpFindArgs = { + criteria?: string; +}; + +export type IdpFindOptions = { + cn?: string; + ipaidpauthendpoint?: string; + ipaidpdevauthendpoint?: string; + ipaidptokenendpoint?: string; + ipaidpuserinfoendpoint?: string; + ipaidpkeysendpoint?: string; + ipaidpissuerurl?: string; + ipaidpclientid?: string; + ipaidpclientsecret?: string; + ipaidpscope?: string; + ipaidpsub?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type IdpModArgs = { + cn: string; +}; + +export type IdpModOptions = { + ipaidpauthendpoint?: string; + ipaidpdevauthendpoint?: string; + ipaidptokenendpoint?: string; + ipaidpuserinfoendpoint?: string; + ipaidpkeysendpoint?: string; + ipaidpissuerurl?: string; + ipaidpclientid?: string; + ipaidpclientsecret?: string; + ipaidpscope?: string; + ipaidpsub?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + rename?: string; +}; + +export type IdpShowArgs = { + cn: string; +}; + +export type IdpShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/idrange.ts b/src/services/requests/idrange.ts new file mode 100644 index 000000000..0c2348fd6 --- /dev/null +++ b/src/services/requests/idrange.ts @@ -0,0 +1,85 @@ +export type IpaRangeType = "ipa-ad-trust" | "ipa-ad-trust-posix" | "ipa-local"; + +type IpaAutoPrivGroups = "true" | "false" | "hybrid"; + +export type IdrangeAddArgs = { + cn: string; +}; + +export type IdrangeAddOptions = { + ipabaseid: number; + ipaidrangesize: number; + ipabaserid?: number; + ipasecondarybaserid?: number; + ipanttrusteddomainsid?: string; + ipanttrusteddomainname?: string; + iparangetype?: IpaRangeType; + ipaautoprivategroups?: IpaAutoPrivGroups; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type IdrangeDelArgs = { + cn: string; +}; + +export type IdrangeDelOptions = { + continue: boolean; + version?: string; +}; + +export type IdrangeFindArgs = { + criteria?: string; +}; + +export type IdrangeFindOptions = { + cn?: string; + ipabaseid?: number; + ipaidrangesize?: number; + ipabaserid?: number; + ipasecondarybaserid?: number; + ipanttrusteddomainsid?: string; + iparangetype?: IpaRangeType; + ipaautoprivategroups?: IpaAutoPrivGroups; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type IdrangeModArgs = { + cn: string; +}; + +export type IdrangeModOptions = { + ipabaseid?: number; + ipaidrangesize?: number; + ipabaserid?: number; + ipasecondarybaserid?: number; + ipaautoprivategroups?: IpaAutoPrivGroups; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + ipanttrusteddomainsid?: string; + ipanttrusteddomainname?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type IdrangeShowArgs = { + cn: string; +}; + +export type IdrangeShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/idview.ts b/src/services/requests/idview.ts new file mode 100644 index 000000000..6a0fb0596 --- /dev/null +++ b/src/services/requests/idview.ts @@ -0,0 +1,84 @@ +export type IdviewAddArgs = { + cn: string; +}; + +export type IdviewAddOptions = { + description?: string; + ipadomainresolutionorder?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type IdviewApplyArgs = { + cn: string; +}; + +export type IdviewApplyOptions = { + host?: string; + hostgroup?: string; + version?: string; +}; + +export type IdviewDelArgs = { + cn: string; +}; + +export type IdviewDelOptions = { + continue: boolean; + version?: string; +}; + +export type IdviewFindArgs = { + criteria?: string; +}; + +export type IdviewFindOptions = { + cn?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type IdviewModArgs = { + cn: string; +}; + +export type IdviewModOptions = { + description?: string; + ipadomainresolutionorder?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + rename?: string; +}; + +export type IdviewShowArgs = { + cn: string; +}; + +export type IdviewShowOptions = { + rights: boolean; + show_hosts?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type IdviewUnapplyArgs = null; + +export type IdviewUnapplyOptions = { + host?: string; + hostgroup?: string; + version?: string; +}; diff --git a/src/services/requests/index.ts b/src/services/requests/index.ts new file mode 100644 index 000000000..6196d4d20 --- /dev/null +++ b/src/services/requests/index.ts @@ -0,0 +1,2385 @@ +import { + AciAddArgs, + AciAddOptions, + AciDelArgs, + AciDelOptions, + AciFindArgs, + AciFindOptions, + AciModArgs, + AciModOptions, + AciRenameArgs, + AciRenameOptions, + AciShowArgs, + AciShowOptions, +} from "./aci"; +import { + AutomemberAddArgs, + AutomemberAddOptions, + AutomemberAddConditionArgs, + AutomemberAddConditionOptions, + AutomemberDefaultGroupRemoveArgs, + AutomemberDefaultGroupRemoveOptions, + AutomemberDefaultGroupSetArgs, + AutomemberDefaultGroupSetOptions, + AutomemberDefaultGroupShowArgs, + AutomemberDefaultGroupShowOptions, + AutomemberDelArgs, + AutomemberDelOptions, + AutomemberFindArgs, + AutomemberFindOptions, + AutomemberFindOrphansArgs, + AutomemberFindOrphansOptions, + AutomemberModArgs, + AutomemberModOptions, + AutomemberRebuildArgs, + AutomemberRebuildOptions, + AutomemberRemoveConditionArgs, + AutomemberRemoveConditionOptions, + AutomemberShowArgs, + AutomemberShowOptions, +} from "./automember"; +import { + AutomountkeyAddArgs, + AutomountkeyAddOptions, + AutomountkeyDelArgs, + AutomountkeyDelOptions, + AutomountkeyFindArgs, + AutomountkeyFindOptions, + AutomountkeyModArgs, + AutomountkeyModOptions, + AutomountkeyShowArgs, + AutomountkeyShowOptions, +} from "./automountkey"; +import { + AutomountlocationAddArgs, + AutomountlocationAddOptions, + AutomountlocationDelArgs, + AutomountlocationDelOptions, + AutomountlocationFindArgs, + AutomountlocationFindOptions, + AutomountlocationShowArgs, + AutomountlocationShowOptions, + AutomountlocationTofilesArgs, + AutomountlocationTofilesOptions, +} from "./automountlocation"; +import { + AutomountmapAddArgs, + AutomountmapAddOptions, + AutomountmapAddIndirectArgs, + AutomountmapAddIndirectOptions, + AutomountmapDelArgs, + AutomountmapDelOptions, + AutomountmapFindArgs, + AutomountmapFindOptions, + AutomountmapModArgs, + AutomountmapModOptions, + AutomountmapShowArgs, + AutomountmapShowOptions, +} from "./automountmap"; +import { + CaAddArgs, + CaAddOptions, + CaDelArgs, + CaDelOptions, + CaDisableArgs, + CaDisableOptions, + CaEnableArgs, + CaEnableOptions, + CaFindArgs, + CaFindOptions, + CaIsEnabledArgs, + CaIsEnabledOptions, + CaModArgs, + CaModOptions, + CaShowArgs, + CaShowOptions, +} from "./ca"; +import { + CaaclAddArgs, + CaaclAddOptions, + CaaclAddCaArgs, + CaaclAddCaOptions, + CaaclAddHostArgs, + CaaclAddHostOptions, + CaaclAddProfileArgs, + CaaclAddProfileOptions, + CaaclAddServiceArgs, + CaaclAddServiceOptions, + CaaclAddUserArgs, + CaaclAddUserOptions, + CaaclDelArgs, + CaaclDelOptions, + CaaclDisableArgs, + CaaclDisableOptions, + CaaclEnableArgs, + CaaclEnableOptions, + CaaclFindArgs, + CaaclFindOptions, + CaaclModArgs, + CaaclModOptions, + CaaclRemoveCaArgs, + CaaclRemoveCaOptions, + CaaclRemoveHostArgs, + CaaclRemoveHostOptions, + CaaclRemoveProfileArgs, + CaaclRemoveProfileOptions, + CaaclRemoveServiceArgs, + CaaclRemoveServiceOptions, + CaaclRemoveUserArgs, + CaaclRemoveUserOptions, + CaaclShowArgs, + CaaclShowOptions, +} from "./caacl"; +import { + CertFindArgs, + CertFindOptions, + CertRemoveHoldArgs, + CertRemoveHoldOptions, + CertRequestArgs, + CertRequestOptions, + CertRevokeArgs, + CertRevokeOptions, + CertShowArgs, + CertShowOptions, + CertStatusArgs, + CertStatusOptions, +} from "./cert"; +import { CertmapMatchArgs, CertmapMatchOptions } from "./certmap"; +import { + CertmapconfigModArgs, + CertmapconfigModOptions, + CertmapconfigShowArgs, + CertmapconfigShowOptions, +} from "./certmapconfig"; +import { + CertmapruleAddArgs, + CertmapruleAddOptions, + CertmapruleDelArgs, + CertmapruleDelOptions, + CertmapruleDisableArgs, + CertmapruleDisableOptions, + CertmapruleEnableArgs, + CertmapruleEnableOptions, + CertmapruleFindArgs, + CertmapruleFindOptions, + CertmapruleModArgs, + CertmapruleModOptions, + CertmapruleShowArgs, + CertmapruleShowOptions, +} from "./certmaprule"; +import { + CertprofileDelArgs, + CertprofileDelOptions, + CertprofileFindArgs, + CertprofileFindOptions, + CertprofileImportArgs, + CertprofileImportOptions, + CertprofileModArgs, + CertprofileModOptions, + CertprofileShowArgs, + CertprofileShowOptions, +} from "./certprofile"; +import { + ClassFindArgs, + ClassFindOptions, + ClassShowArgs, + ClassShowOptions, +} from "./class"; +import { + CommandDefaultsArgs, + CommandDefaultsOptions, + CommandFindArgs, + CommandFindOptions, + CommandShowArgs, + CommandShowOptions, +} from "./command"; +import { + ConfigModArgs, + ConfigModOptions, + ConfigShowArgs, + ConfigShowOptions, +} from "./config"; +import { + CosentryAddArgs, + CosentryAddOptions, + CosentryDelArgs, + CosentryDelOptions, + CosentryFindArgs, + CosentryFindOptions, + CosentryModArgs, + CosentryModOptions, + CosentryShowArgs, + CosentryShowOptions, +} from "./cosentry"; +import { + DelegationAddArgs, + DelegationAddOptions, + DelegationDelArgs, + DelegationDelOptions, + DelegationFindArgs, + DelegationFindOptions, + DelegationModArgs, + DelegationModOptions, + DelegationShowArgs, + DelegationShowOptions, +} from "./delegation"; +import { + DnsIsEnabledArgs, + DnsIsEnabledOptions, + DnsResolveArgs, + DnsResolveOptions, + DnsUpdateSystemRecordsArgs, + DnsUpdateSystemRecordsOptions, +} from "./dns"; +import { + DnsconfigModArgs, + DnsconfigModOptions, + DnsconfigShowArgs, + DnsconfigShowOptions, +} from "./dnsconfig"; +import { + DnsforwardzoneAddArgs, + DnsforwardzoneAddOptions, + DnsforwardzoneAddPermissionArgs, + DnsforwardzoneAddPermissionOptions, + DnsforwardzoneDelArgs, + DnsforwardzoneDelOptions, + DnsforwardzoneDisableArgs, + DnsforwardzoneDisableOptions, + DnsforwardzoneEnableArgs, + DnsforwardzoneEnableOptions, + DnsforwardzoneFindArgs, + DnsforwardzoneFindOptions, + DnsforwardzoneModArgs, + DnsforwardzoneModOptions, + DnsforwardzoneRemovePermissionArgs, + DnsforwardzoneRemovePermissionOptions, + DnsforwardzoneShowArgs, + DnsforwardzoneShowOptions, +} from "./dnsforwardzone"; +import { + DnsrecordAddArgs, + DnsrecordAddOptions, + DnsrecordDelArgs, + DnsrecordDelOptions, + DnsrecordDelentryArgs, + DnsrecordDelentryOptions, + DnsrecordFindArgs, + DnsrecordFindOptions, + DnsrecordModArgs, + DnsrecordModOptions, + DnsrecordShowArgs, + DnsrecordShowOptions, + DnsrecordSplitPartsArgs, + DnsrecordSplitPartsOptions, +} from "./dnsrecord"; +import { + DnsserverFindArgs, + DnsserverFindOptions, + DnsserverModArgs, + DnsserverModOptions, + DnsserverShowArgs, + DnsserverShowOptions, +} from "./dnsserver"; +import { + DnszoneAddArgs, + DnszoneAddOptions, + DnszoneAddPermissionArgs, + DnszoneAddPermissionOptions, + DnszoneDelArgs, + DnszoneDelOptions, + DnszoneDisableArgs, + DnszoneDisableOptions, + DnszoneEnableArgs, + DnszoneEnableOptions, + DnszoneFindArgs, + DnszoneFindOptions, + DnszoneModArgs, + DnszoneModOptions, + DnszoneRemovePermissionArgs, + DnszoneRemovePermissionOptions, + DnszoneShowArgs, + DnszoneShowOptions, +} from "./dnszone"; +import { + GroupAddArgs, + GroupAddOptions, + GroupAddMemberArgs, + GroupAddMemberOptions, + GroupAddMemberManagerArgs, + GroupAddMemberManagerOptions, + GroupDelArgs, + GroupDelOptions, + GroupDetachArgs, + GroupDetachOptions, + GroupFindArgs, + GroupFindOptions, + GroupModArgs, + GroupModOptions, + GroupRemoveMemberArgs, + GroupRemoveMemberOptions, + GroupRemoveMemberManagerArgs, + GroupRemoveMemberManagerOptions, + GroupShowArgs, + GroupShowOptions, +} from "./group"; +import { + HbacruleAddArgs, + HbacruleAddOptions, + HbacruleAddHostArgs, + HbacruleAddHostOptions, + HbacruleAddServiceArgs, + HbacruleAddServiceOptions, + HbacruleAddSourcehostArgs, + HbacruleAddSourcehostOptions, + HbacruleAddUserArgs, + HbacruleAddUserOptions, + HbacruleDelArgs, + HbacruleDelOptions, + HbacruleDisableArgs, + HbacruleDisableOptions, + HbacruleEnableArgs, + HbacruleEnableOptions, + HbacruleFindArgs, + HbacruleFindOptions, + HbacruleModArgs, + HbacruleModOptions, + HbacruleRemoveHostArgs, + HbacruleRemoveHostOptions, + HbacruleRemoveServiceArgs, + HbacruleRemoveServiceOptions, + HbacruleRemoveSourcehostArgs, + HbacruleRemoveSourcehostOptions, + HbacruleRemoveUserArgs, + HbacruleRemoveUserOptions, + HbacruleShowArgs, + HbacruleShowOptions, +} from "./hbacrule"; +import { + HbacsvcAddArgs, + HbacsvcAddOptions, + HbacsvcDelArgs, + HbacsvcDelOptions, + HbacsvcFindArgs, + HbacsvcFindOptions, + HbacsvcModArgs, + HbacsvcModOptions, + HbacsvcShowArgs, + HbacsvcShowOptions, +} from "./hbacsvc"; +import { + HbacsvcgroupAddArgs, + HbacsvcgroupAddOptions, + HbacsvcgroupAddMemberArgs, + HbacsvcgroupAddMemberOptions, + HbacsvcgroupDelArgs, + HbacsvcgroupDelOptions, + HbacsvcgroupFindArgs, + HbacsvcgroupFindOptions, + HbacsvcgroupModArgs, + HbacsvcgroupModOptions, + HbacsvcgroupRemoveMemberArgs, + HbacsvcgroupRemoveMemberOptions, + HbacsvcgroupShowArgs, + HbacsvcgroupShowOptions, +} from "./hbacsvcgroup"; +import { + HostAddArgs, + HostAddOptions, + HostAddCertArgs, + HostAddCertOptions, + HostAddDelegationArgs, + HostAddDelegationOptions, + HostAddManagedbyArgs, + HostAddManagedbyOptions, + HostAddPrincipalArgs, + HostAddPrincipalOptions, + HostAllowAddDelegationArgs, + HostAllowAddDelegationOptions, + HostAllowCreateKeytabArgs, + HostAllowCreateKeytabOptions, + HostAllowRetrieveKeytabArgs, + HostAllowRetrieveKeytabOptions, + HostDelArgs, + HostDelOptions, + HostDisableArgs, + HostDisableOptions, + HostDisallowAddDelegationArgs, + HostDisallowAddDelegationOptions, + HostDisallowCreateKeytabArgs, + HostDisallowCreateKeytabOptions, + HostDisallowRetrieveKeytabArgs, + HostDisallowRetrieveKeytabOptions, + HostFindArgs, + HostFindOptions, + HostModArgs, + HostModOptions, + HostRemoveCertArgs, + HostRemoveCertOptions, + HostRemoveDelegationArgs, + HostRemoveDelegationOptions, + HostRemoveManagedbyArgs, + HostRemoveManagedbyOptions, + HostRemovePrincipalArgs, + HostRemovePrincipalOptions, + HostShowArgs, + HostShowOptions, +} from "./host"; +import { + HostgroupAddArgs, + HostgroupAddOptions, + HostgroupAddMemberArgs, + HostgroupAddMemberOptions, + HostgroupAddMemberManagerArgs, + HostgroupAddMemberManagerOptions, + HostgroupDelArgs, + HostgroupDelOptions, + HostgroupFindArgs, + HostgroupFindOptions, + HostgroupModArgs, + HostgroupModOptions, + HostgroupRemoveMemberArgs, + HostgroupRemoveMemberOptions, + HostgroupRemoveMemberManagerArgs, + HostgroupRemoveMemberManagerOptions, + HostgroupShowArgs, + HostgroupShowOptions, +} from "./hostgroup"; +import { + IdoverridegroupAddArgs, + IdoverridegroupAddOptions, + IdoverridegroupDelArgs, + IdoverridegroupDelOptions, + IdoverridegroupFindArgs, + IdoverridegroupFindOptions, + IdoverridegroupModArgs, + IdoverridegroupModOptions, + IdoverridegroupShowArgs, + IdoverridegroupShowOptions, +} from "./idoverridegroup"; +import { + IdoverrideuserAddArgs, + IdoverrideuserAddOptions, + IdoverrideuserAddCertArgs, + IdoverrideuserAddCertOptions, + IdoverrideuserDelArgs, + IdoverrideuserDelOptions, + IdoverrideuserFindArgs, + IdoverrideuserFindOptions, + IdoverrideuserModArgs, + IdoverrideuserModOptions, + IdoverrideuserRemoveCertArgs, + IdoverrideuserRemoveCertOptions, + IdoverrideuserShowArgs, + IdoverrideuserShowOptions, +} from "./idoverrideuser"; +import { + IdpAddArgs, + IdpAddOptions, + IdpDelArgs, + IdpDelOptions, + IdpFindArgs, + IdpFindOptions, + IdpModArgs, + IdpModOptions, + IdpShowArgs, + IdpShowOptions, +} from "./idp"; +import { + IdrangeAddArgs, + IdrangeAddOptions, + IdrangeDelArgs, + IdrangeDelOptions, + IdrangeFindArgs, + IdrangeFindOptions, + IdrangeModArgs, + IdrangeModOptions, + IdrangeShowArgs, + IdrangeShowOptions, +} from "./idrange"; +import { + IdviewAddArgs, + IdviewAddOptions, + IdviewApplyArgs, + IdviewApplyOptions, + IdviewDelArgs, + IdviewDelOptions, + IdviewFindArgs, + IdviewFindOptions, + IdviewModArgs, + IdviewModOptions, + IdviewShowArgs, + IdviewShowOptions, + IdviewUnapplyArgs, + IdviewUnapplyOptions, +} from "./idview"; +import { + KrbtpolicyModArgs, + KrbtpolicyModOptions, + KrbtpolicyResetArgs, + KrbtpolicyResetOptions, + KrbtpolicyShowArgs, + KrbtpolicyShowOptions, +} from "./krbtpolicy"; +import { + LocationAddArgs, + LocationAddOptions, + LocationDelArgs, + LocationDelOptions, + LocationFindArgs, + LocationFindOptions, + LocationModArgs, + LocationModOptions, + LocationShowArgs, + LocationShowOptions, +} from "./location"; +import { + NetgroupAddArgs, + NetgroupAddOptions, + NetgroupAddMemberArgs, + NetgroupAddMemberOptions, + NetgroupDelArgs, + NetgroupDelOptions, + NetgroupFindArgs, + NetgroupFindOptions, + NetgroupModArgs, + NetgroupModOptions, + NetgroupRemoveMemberArgs, + NetgroupRemoveMemberOptions, + NetgroupShowArgs, + NetgroupShowOptions, +} from "./netgroup"; +import { + OtpconfigModArgs, + OtpconfigModOptions, + OtpconfigShowArgs, + OtpconfigShowOptions, +} from "./otpconfig"; +import { + OtptokenAddArgs, + OtptokenAddOptions, + OtptokenAddManagedbyArgs, + OtptokenAddManagedbyOptions, + OtptokenDelArgs, + OtptokenDelOptions, + OtptokenFindArgs, + OtptokenFindOptions, + OtptokenModArgs, + OtptokenModOptions, + OtptokenRemoveManagedbyArgs, + OtptokenRemoveManagedbyOptions, + OtptokenShowArgs, + OtptokenShowOptions, +} from "./otptoken"; +import { + OutputFindArgs, + OutputFindOptions, + OutputShowArgs, + OutputShowOptions, +} from "./output"; +import { + ParamFindArgs, + ParamFindOptions, + ParamShowArgs, + ParamShowOptions, +} from "./param"; +import { + PasskeyconfigModArgs, + PasskeyconfigModOptions, + PasskeyconfigShowArgs, + PasskeyconfigShowOptions, +} from "./passkeyconfig"; +import { + PermissionAddArgs, + PermissionAddOptions, + PermissionAddMemberArgs, + PermissionAddMemberOptions, + PermissionAddNoaciArgs, + PermissionAddNoaciOptions, + PermissionDelArgs, + PermissionDelOptions, + PermissionFindArgs, + PermissionFindOptions, + PermissionModArgs, + PermissionModOptions, + PermissionRemoveMemberArgs, + PermissionRemoveMemberOptions, + PermissionShowArgs, + PermissionShowOptions, +} from "./permission"; +import { PkinitStatusArgs, PkinitStatusOptions } from "./pkinit"; +import { + PrivilegeAddArgs, + PrivilegeAddOptions, + PrivilegeAddMemberArgs, + PrivilegeAddMemberOptions, + PrivilegeAddPermissionArgs, + PrivilegeAddPermissionOptions, + PrivilegeDelArgs, + PrivilegeDelOptions, + PrivilegeFindArgs, + PrivilegeFindOptions, + PrivilegeModArgs, + PrivilegeModOptions, + PrivilegeRemoveMemberArgs, + PrivilegeRemoveMemberOptions, + PrivilegeRemovePermissionArgs, + PrivilegeRemovePermissionOptions, + PrivilegeShowArgs, + PrivilegeShowOptions, +} from "./privilege"; +import { + PwpolicyAddArgs, + PwpolicyAddOptions, + PwpolicyDelArgs, + PwpolicyDelOptions, + PwpolicyFindArgs, + PwpolicyFindOptions, + PwpolicyModArgs, + PwpolicyModOptions, + PwpolicyShowArgs, + PwpolicyShowOptions, +} from "./pwpolicy"; +import { + RadiusproxyAddArgs, + RadiusproxyAddOptions, + RadiusproxyDelArgs, + RadiusproxyDelOptions, + RadiusproxyFindArgs, + RadiusproxyFindOptions, + RadiusproxyModArgs, + RadiusproxyModOptions, + RadiusproxyShowArgs, + RadiusproxyShowOptions, +} from "./radiusproxy"; +import { + RealmdomainsModArgs, + RealmdomainsModOptions, + RealmdomainsShowArgs, + RealmdomainsShowOptions, +} from "./realmdomains"; +import { + RoleAddArgs, + RoleAddOptions, + RoleAddMemberArgs, + RoleAddMemberOptions, + RoleAddPrivilegeArgs, + RoleAddPrivilegeOptions, + RoleDelArgs, + RoleDelOptions, + RoleFindArgs, + RoleFindOptions, + RoleModArgs, + RoleModOptions, + RoleRemoveMemberArgs, + RoleRemoveMemberOptions, + RoleRemovePrivilegeArgs, + RoleRemovePrivilegeOptions, + RoleShowArgs, + RoleShowOptions, +} from "./role"; +import { + SelfserviceAddArgs, + SelfserviceAddOptions, + SelfserviceDelArgs, + SelfserviceDelOptions, + SelfserviceFindArgs, + SelfserviceFindOptions, + SelfserviceModArgs, + SelfserviceModOptions, + SelfserviceShowArgs, + SelfserviceShowOptions, +} from "./selfservice"; +import { + SelinuxusermapAddArgs, + SelinuxusermapAddOptions, + SelinuxusermapAddHostArgs, + SelinuxusermapAddHostOptions, + SelinuxusermapAddUserArgs, + SelinuxusermapAddUserOptions, + SelinuxusermapDelArgs, + SelinuxusermapDelOptions, + SelinuxusermapDisableArgs, + SelinuxusermapDisableOptions, + SelinuxusermapEnableArgs, + SelinuxusermapEnableOptions, + SelinuxusermapFindArgs, + SelinuxusermapFindOptions, + SelinuxusermapModArgs, + SelinuxusermapModOptions, + SelinuxusermapRemoveHostArgs, + SelinuxusermapRemoveHostOptions, + SelinuxusermapRemoveUserArgs, + SelinuxusermapRemoveUserOptions, + SelinuxusermapShowArgs, + SelinuxusermapShowOptions, +} from "./selinuxusermap"; +import { + ServerConncheckArgs, + ServerConncheckOptions, + ServerDelArgs, + ServerDelOptions, + ServerFindArgs, + ServerFindOptions, + ServerModArgs, + ServerModOptions, + ServerRoleFindArgs, + ServerRoleFindOptions, + ServerRoleShowArgs, + ServerRoleShowOptions, + ServerShowArgs, + ServerShowOptions, + ServerStateArgs, + ServerStateOptions, +} from "./server"; +import { + ServiceAddArgs, + ServiceAddOptions, + ServiceAddCertArgs, + ServiceAddCertOptions, + ServiceAddDelegationArgs, + ServiceAddDelegationOptions, + ServiceAddHostArgs, + ServiceAddHostOptions, + ServiceAddPrincipalArgs, + ServiceAddPrincipalOptions, + ServiceAddSmbArgs, + ServiceAddSmbOptions, + ServiceAllowAddDelegationArgs, + ServiceAllowAddDelegationOptions, + ServiceAllowCreateKeytabArgs, + ServiceAllowCreateKeytabOptions, + ServiceAllowRetrieveKeytabArgs, + ServiceAllowRetrieveKeytabOptions, + ServiceDelArgs, + ServiceDelOptions, + ServiceDisableArgs, + ServiceDisableOptions, + ServiceDisallowAddDelegationArgs, + ServiceDisallowAddDelegationOptions, + ServiceDisallowCreateKeytabArgs, + ServiceDisallowCreateKeytabOptions, + ServiceDisallowRetrieveKeytabArgs, + ServiceDisallowRetrieveKeytabOptions, + ServiceFindArgs, + ServiceFindOptions, + ServiceModArgs, + ServiceModOptions, + ServiceRemoveCertArgs, + ServiceRemoveCertOptions, + ServiceRemoveDelegationArgs, + ServiceRemoveDelegationOptions, + ServiceRemoveHostArgs, + ServiceRemoveHostOptions, + ServiceRemovePrincipalArgs, + ServiceRemovePrincipalOptions, + ServiceShowArgs, + ServiceShowOptions, +} from "./service"; +import { + ServicedelegationruleAddArgs, + ServicedelegationruleAddOptions, + ServicedelegationruleAddMemberArgs, + ServicedelegationruleAddMemberOptions, + ServicedelegationruleAddTargetArgs, + ServicedelegationruleAddTargetOptions, + ServicedelegationruleDelArgs, + ServicedelegationruleDelOptions, + ServicedelegationruleFindArgs, + ServicedelegationruleFindOptions, + ServicedelegationruleRemoveMemberArgs, + ServicedelegationruleRemoveMemberOptions, + ServicedelegationruleRemoveTargetArgs, + ServicedelegationruleRemoveTargetOptions, + ServicedelegationruleShowArgs, + ServicedelegationruleShowOptions, +} from "./servicedelegationrule"; +import { + ServicedelegationtargetAddArgs, + ServicedelegationtargetAddOptions, + ServicedelegationtargetAddMemberArgs, + ServicedelegationtargetAddMemberOptions, + ServicedelegationtargetDelArgs, + ServicedelegationtargetDelOptions, + ServicedelegationtargetFindArgs, + ServicedelegationtargetFindOptions, + ServicedelegationtargetRemoveMemberArgs, + ServicedelegationtargetRemoveMemberOptions, + ServicedelegationtargetShowArgs, + ServicedelegationtargetShowOptions, +} from "./servicedelegationtarget"; +import { + StageuserActivateArgs, + StageuserActivateOptions, + StageuserAddArgs, + StageuserAddOptions, + StageuserAddCertArgs, + StageuserAddCertOptions, + StageuserAddCertmapdataArgs, + StageuserAddCertmapdataOptions, + StageuserAddManagerArgs, + StageuserAddManagerOptions, + StageuserAddPasskeyArgs, + StageuserAddPasskeyOptions, + StageuserAddPrincipalArgs, + StageuserAddPrincipalOptions, + StageuserDelArgs, + StageuserDelOptions, + StageuserFindArgs, + StageuserFindOptions, + StageuserModArgs, + StageuserModOptions, + StageuserRemoveCertArgs, + StageuserRemoveCertOptions, + StageuserRemoveCertmapdataArgs, + StageuserRemoveCertmapdataOptions, + StageuserRemoveManagerArgs, + StageuserRemoveManagerOptions, + StageuserRemovePasskeyArgs, + StageuserRemovePasskeyOptions, + StageuserRemovePrincipalArgs, + StageuserRemovePrincipalOptions, + StageuserShowArgs, + StageuserShowOptions, +} from "./stageuser"; +import { + SubidAddArgs, + SubidAddOptions, + SubidDelArgs, + SubidDelOptions, + SubidFindArgs, + SubidFindOptions, + SubidGenerateArgs, + SubidGenerateOptions, + SubidMatchArgs, + SubidMatchOptions, + SubidModArgs, + SubidModOptions, + SubidShowArgs, + SubidShowOptions, + SubidStatsArgs, + SubidStatsOptions, +} from "./subid"; +import { + SudocmdAddArgs, + SudocmdAddOptions, + SudocmdDelArgs, + SudocmdDelOptions, + SudocmdFindArgs, + SudocmdFindOptions, + SudocmdModArgs, + SudocmdModOptions, + SudocmdShowArgs, + SudocmdShowOptions, +} from "./sudocmd"; +import { + SudocmdgroupAddArgs, + SudocmdgroupAddOptions, + SudocmdgroupAddMemberArgs, + SudocmdgroupAddMemberOptions, + SudocmdgroupDelArgs, + SudocmdgroupDelOptions, + SudocmdgroupFindArgs, + SudocmdgroupFindOptions, + SudocmdgroupModArgs, + SudocmdgroupModOptions, + SudocmdgroupRemoveMemberArgs, + SudocmdgroupRemoveMemberOptions, + SudocmdgroupShowArgs, + SudocmdgroupShowOptions, +} from "./sudocmdgroup"; +import { + SudoruleAddArgs, + SudoruleAddOptions, + SudoruleAddAllowCommandArgs, + SudoruleAddAllowCommandOptions, + SudoruleAddDenyCommandArgs, + SudoruleAddDenyCommandOptions, + SudoruleAddHostArgs, + SudoruleAddHostOptions, + SudoruleAddOptionArgs, + SudoruleAddOptionOptions, + SudoruleAddRunasgroupArgs, + SudoruleAddRunasgroupOptions, + SudoruleAddRunasuserArgs, + SudoruleAddRunasuserOptions, + SudoruleAddUserArgs, + SudoruleAddUserOptions, + SudoruleDelArgs, + SudoruleDelOptions, + SudoruleDisableArgs, + SudoruleDisableOptions, + SudoruleEnableArgs, + SudoruleEnableOptions, + SudoruleFindArgs, + SudoruleFindOptions, + SudoruleModArgs, + SudoruleModOptions, + SudoruleRemoveAllowCommandArgs, + SudoruleRemoveAllowCommandOptions, + SudoruleRemoveDenyCommandArgs, + SudoruleRemoveDenyCommandOptions, + SudoruleRemoveHostArgs, + SudoruleRemoveHostOptions, + SudoruleRemoveOptionArgs, + SudoruleRemoveOptionOptions, + SudoruleRemoveRunasgroupArgs, + SudoruleRemoveRunasgroupOptions, + SudoruleRemoveRunasuserArgs, + SudoruleRemoveRunasuserOptions, + SudoruleRemoveUserArgs, + SudoruleRemoveUserOptions, + SudoruleShowArgs, + SudoruleShowOptions, +} from "./sudorule"; +import { + SysaccountAddArgs, + SysaccountAddOptions, + SysaccountDelArgs, + SysaccountDelOptions, + SysaccountDisableArgs, + SysaccountDisableOptions, + SysaccountEnableArgs, + SysaccountEnableOptions, + SysaccountFindArgs, + SysaccountFindOptions, + SysaccountModArgs, + SysaccountModOptions, + SysaccountPolicyArgs, + SysaccountPolicyOptions, + SysaccountShowArgs, + SysaccountShowOptions, +} from "./sysaccount"; +import { + TopicFindArgs, + TopicFindOptions, + TopicShowArgs, + TopicShowOptions, +} from "./topic"; +import { + TopologysegmentAddArgs, + TopologysegmentAddOptions, + TopologysegmentDelArgs, + TopologysegmentDelOptions, + TopologysegmentFindArgs, + TopologysegmentFindOptions, + TopologysegmentModArgs, + TopologysegmentModOptions, + TopologysegmentReinitializeArgs, + TopologysegmentReinitializeOptions, + TopologysegmentShowArgs, + TopologysegmentShowOptions, +} from "./topologysegment"; +import { + TopologysuffixAddArgs, + TopologysuffixAddOptions, + TopologysuffixDelArgs, + TopologysuffixDelOptions, + TopologysuffixFindArgs, + TopologysuffixFindOptions, + TopologysuffixModArgs, + TopologysuffixModOptions, + TopologysuffixShowArgs, + TopologysuffixShowOptions, + TopologysuffixVerifyArgs, + TopologysuffixVerifyOptions, +} from "./topologysuffix"; +import { + TrustAddArgs, + TrustAddOptions, + TrustDelArgs, + TrustDelOptions, + TrustEnableAgentArgs, + TrustEnableAgentOptions, + TrustFetchDomainsArgs, + TrustFetchDomainsOptions, + TrustFindArgs, + TrustFindOptions, + TrustModArgs, + TrustModOptions, + TrustResolveArgs, + TrustResolveOptions, + TrustShowArgs, + TrustShowOptions, +} from "./trust"; +import { + TrustconfigModArgs, + TrustconfigModOptions, + TrustconfigShowArgs, + TrustconfigShowOptions, +} from "./trustconfig"; +import { + TrustdomainAddArgs, + TrustdomainAddOptions, + TrustdomainDelArgs, + TrustdomainDelOptions, + TrustdomainDisableArgs, + TrustdomainDisableOptions, + TrustdomainEnableArgs, + TrustdomainEnableOptions, + TrustdomainFindArgs, + TrustdomainFindOptions, + TrustdomainModArgs, + TrustdomainModOptions, +} from "./trustdomain"; +import { + UserAddArgs, + UserAddOptions, + UserAddCertArgs, + UserAddCertOptions, + UserAddCertmapdataArgs, + UserAddCertmapdataOptions, + UserAddManagerArgs, + UserAddManagerOptions, + UserAddPasskeyArgs, + UserAddPasskeyOptions, + UserAddPrincipalArgs, + UserAddPrincipalOptions, + UserDelArgs, + UserDelOptions, + UserDisableArgs, + UserDisableOptions, + UserEnableArgs, + UserEnableOptions, + UserFindArgs, + UserFindOptions, + UserModArgs, + UserModOptions, + UserRemoveCertArgs, + UserRemoveCertOptions, + UserRemoveCertmapdataArgs, + UserRemoveCertmapdataOptions, + UserRemoveManagerArgs, + UserRemoveManagerOptions, + UserRemovePasskeyArgs, + UserRemovePasskeyOptions, + UserRemovePrincipalArgs, + UserRemovePrincipalOptions, + UserShowArgs, + UserShowOptions, + UserStageArgs, + UserStageOptions, + UserStatusArgs, + UserStatusOptions, + UserUndelArgs, + UserUndelOptions, + UserUnlockArgs, + UserUnlockOptions, +} from "./user"; +import { + AdtrustIsEnabledArgs, + AdtrustIsEnabledOptions, + BatchArgs, + BatchOptions, + CompatIsEnabledArgs, + CompatIsEnabledOptions, + DomainlevelGetArgs, + DomainlevelGetOptions, + DomainlevelSetArgs, + DomainlevelSetOptions, + EnvArgs, + EnvOptions, + HbactestArgs, + HbactestOptions, + I18nMessagesArgs, + I18nMessagesOptions, + JoinArgs, + JoinOptions, + JsonMetadataArgs, + JsonMetadataOptions, + KraIsEnabledArgs, + KraIsEnabledOptions, + MigrateDsArgs, + MigrateDsOptions, + PasswdArgs, + PasswdOptions, + PingArgs, + PingOptions, + PluginsArgs, + PluginsOptions, + SchemaArgs, + SchemaOptions, + SessionLogoutArgs, + SessionLogoutOptions, + SidgenWasRunArgs, + SidgenWasRunOptions, + WhoamiArgs, + WhoamiOptions, +} from "./utils"; +import { + VaultAddInternalArgs, + VaultAddInternalOptions, + VaultAddMemberArgs, + VaultAddMemberOptions, + VaultAddOwnerArgs, + VaultAddOwnerOptions, + VaultArchiveInternalArgs, + VaultArchiveInternalOptions, + VaultDelArgs, + VaultDelOptions, + VaultFindArgs, + VaultFindOptions, + VaultModInternalArgs, + VaultModInternalOptions, + VaultRemoveMemberArgs, + VaultRemoveMemberOptions, + VaultRemoveOwnerArgs, + VaultRemoveOwnerOptions, + VaultRetrieveInternalArgs, + VaultRetrieveInternalOptions, + VaultShowArgs, + VaultShowOptions, +} from "./vault"; +import { VaultconfigShowArgs, VaultconfigShowOptions } from "./vaultconfig"; +import { + VaultcontainerAddOwnerArgs, + VaultcontainerAddOwnerOptions, + VaultcontainerDelArgs, + VaultcontainerDelOptions, + VaultcontainerRemoveOwnerArgs, + VaultcontainerRemoveOwnerOptions, + VaultcontainerShowArgs, + VaultcontainerShowOptions, +} from "./vaultcontainer"; + +export type RequestMap = { + aci_add: { args: AciAddArgs; options: AciAddOptions }; + aci_del: { args: AciDelArgs; options: AciDelOptions }; + aci_find: { args: AciFindArgs; options: AciFindOptions }; + aci_mod: { args: AciModArgs; options: AciModOptions }; + aci_rename: { args: AciRenameArgs; options: AciRenameOptions }; + aci_show: { args: AciShowArgs; options: AciShowOptions }; + adtrust_is_enabled: { + args: AdtrustIsEnabledArgs; + options: AdtrustIsEnabledOptions; + }; + automember_add: { args: AutomemberAddArgs; options: AutomemberAddOptions }; + automember_add_condition: { + args: AutomemberAddConditionArgs; + options: AutomemberAddConditionOptions; + }; + automember_default_group_remove: { + args: AutomemberDefaultGroupRemoveArgs; + options: AutomemberDefaultGroupRemoveOptions; + }; + automember_default_group_set: { + args: AutomemberDefaultGroupSetArgs; + options: AutomemberDefaultGroupSetOptions; + }; + automember_default_group_show: { + args: AutomemberDefaultGroupShowArgs; + options: AutomemberDefaultGroupShowOptions; + }; + automember_del: { args: AutomemberDelArgs; options: AutomemberDelOptions }; + automember_find: { args: AutomemberFindArgs; options: AutomemberFindOptions }; + automember_find_orphans: { + args: AutomemberFindOrphansArgs; + options: AutomemberFindOrphansOptions; + }; + automember_mod: { args: AutomemberModArgs; options: AutomemberModOptions }; + automember_rebuild: { + args: AutomemberRebuildArgs; + options: AutomemberRebuildOptions; + }; + automember_remove_condition: { + args: AutomemberRemoveConditionArgs; + options: AutomemberRemoveConditionOptions; + }; + automember_show: { args: AutomemberShowArgs; options: AutomemberShowOptions }; + automountkey_add: { + args: AutomountkeyAddArgs; + options: AutomountkeyAddOptions; + }; + automountkey_del: { + args: AutomountkeyDelArgs; + options: AutomountkeyDelOptions; + }; + automountkey_find: { + args: AutomountkeyFindArgs; + options: AutomountkeyFindOptions; + }; + automountkey_mod: { + args: AutomountkeyModArgs; + options: AutomountkeyModOptions; + }; + automountkey_show: { + args: AutomountkeyShowArgs; + options: AutomountkeyShowOptions; + }; + automountlocation_add: { + args: AutomountlocationAddArgs; + options: AutomountlocationAddOptions; + }; + automountlocation_del: { + args: AutomountlocationDelArgs; + options: AutomountlocationDelOptions; + }; + automountlocation_find: { + args: AutomountlocationFindArgs; + options: AutomountlocationFindOptions; + }; + automountlocation_show: { + args: AutomountlocationShowArgs; + options: AutomountlocationShowOptions; + }; + automountlocation_tofiles: { + args: AutomountlocationTofilesArgs; + options: AutomountlocationTofilesOptions; + }; + automountmap_add: { + args: AutomountmapAddArgs; + options: AutomountmapAddOptions; + }; + automountmap_add_indirect: { + args: AutomountmapAddIndirectArgs; + options: AutomountmapAddIndirectOptions; + }; + automountmap_del: { + args: AutomountmapDelArgs; + options: AutomountmapDelOptions; + }; + automountmap_find: { + args: AutomountmapFindArgs; + options: AutomountmapFindOptions; + }; + automountmap_mod: { + args: AutomountmapModArgs; + options: AutomountmapModOptions; + }; + automountmap_show: { + args: AutomountmapShowArgs; + options: AutomountmapShowOptions; + }; + batch: { args: BatchArgs; options: BatchOptions }; + ca_add: { args: CaAddArgs; options: CaAddOptions }; + ca_del: { args: CaDelArgs; options: CaDelOptions }; + ca_disable: { args: CaDisableArgs; options: CaDisableOptions }; + ca_enable: { args: CaEnableArgs; options: CaEnableOptions }; + ca_find: { args: CaFindArgs; options: CaFindOptions }; + ca_is_enabled: { args: CaIsEnabledArgs; options: CaIsEnabledOptions }; + ca_mod: { args: CaModArgs; options: CaModOptions }; + ca_show: { args: CaShowArgs; options: CaShowOptions }; + caacl_add: { args: CaaclAddArgs; options: CaaclAddOptions }; + caacl_add_ca: { args: CaaclAddCaArgs; options: CaaclAddCaOptions }; + caacl_add_host: { args: CaaclAddHostArgs; options: CaaclAddHostOptions }; + caacl_add_profile: { + args: CaaclAddProfileArgs; + options: CaaclAddProfileOptions; + }; + caacl_add_service: { + args: CaaclAddServiceArgs; + options: CaaclAddServiceOptions; + }; + caacl_add_user: { args: CaaclAddUserArgs; options: CaaclAddUserOptions }; + caacl_del: { args: CaaclDelArgs; options: CaaclDelOptions }; + caacl_disable: { args: CaaclDisableArgs; options: CaaclDisableOptions }; + caacl_enable: { args: CaaclEnableArgs; options: CaaclEnableOptions }; + caacl_find: { args: CaaclFindArgs; options: CaaclFindOptions }; + caacl_mod: { args: CaaclModArgs; options: CaaclModOptions }; + caacl_remove_ca: { args: CaaclRemoveCaArgs; options: CaaclRemoveCaOptions }; + caacl_remove_host: { + args: CaaclRemoveHostArgs; + options: CaaclRemoveHostOptions; + }; + caacl_remove_profile: { + args: CaaclRemoveProfileArgs; + options: CaaclRemoveProfileOptions; + }; + caacl_remove_service: { + args: CaaclRemoveServiceArgs; + options: CaaclRemoveServiceOptions; + }; + caacl_remove_user: { + args: CaaclRemoveUserArgs; + options: CaaclRemoveUserOptions; + }; + caacl_show: { args: CaaclShowArgs; options: CaaclShowOptions }; + cert_find: { args: CertFindArgs; options: CertFindOptions }; + cert_remove_hold: { + args: CertRemoveHoldArgs; + options: CertRemoveHoldOptions; + }; + cert_request: { args: CertRequestArgs; options: CertRequestOptions }; + cert_revoke: { args: CertRevokeArgs; options: CertRevokeOptions }; + cert_show: { args: CertShowArgs; options: CertShowOptions }; + cert_status: { args: CertStatusArgs; options: CertStatusOptions }; + certmap_match: { args: CertmapMatchArgs; options: CertmapMatchOptions }; + certmapconfig_mod: { + args: CertmapconfigModArgs; + options: CertmapconfigModOptions; + }; + certmapconfig_show: { + args: CertmapconfigShowArgs; + options: CertmapconfigShowOptions; + }; + certmaprule_add: { args: CertmapruleAddArgs; options: CertmapruleAddOptions }; + certmaprule_del: { args: CertmapruleDelArgs; options: CertmapruleDelOptions }; + certmaprule_disable: { + args: CertmapruleDisableArgs; + options: CertmapruleDisableOptions; + }; + certmaprule_enable: { + args: CertmapruleEnableArgs; + options: CertmapruleEnableOptions; + }; + certmaprule_find: { + args: CertmapruleFindArgs; + options: CertmapruleFindOptions; + }; + certmaprule_mod: { args: CertmapruleModArgs; options: CertmapruleModOptions }; + certmaprule_show: { + args: CertmapruleShowArgs; + options: CertmapruleShowOptions; + }; + certprofile_del: { args: CertprofileDelArgs; options: CertprofileDelOptions }; + certprofile_find: { + args: CertprofileFindArgs; + options: CertprofileFindOptions; + }; + certprofile_import: { + args: CertprofileImportArgs; + options: CertprofileImportOptions; + }; + certprofile_mod: { args: CertprofileModArgs; options: CertprofileModOptions }; + certprofile_show: { + args: CertprofileShowArgs; + options: CertprofileShowOptions; + }; + class_find: { args: ClassFindArgs; options: ClassFindOptions }; + class_show: { args: ClassShowArgs; options: ClassShowOptions }; + command_defaults: { + args: CommandDefaultsArgs; + options: CommandDefaultsOptions; + }; + command_find: { args: CommandFindArgs; options: CommandFindOptions }; + command_show: { args: CommandShowArgs; options: CommandShowOptions }; + compat_is_enabled: { + args: CompatIsEnabledArgs; + options: CompatIsEnabledOptions; + }; + config_mod: { args: ConfigModArgs; options: ConfigModOptions }; + config_show: { args: ConfigShowArgs; options: ConfigShowOptions }; + cosentry_add: { args: CosentryAddArgs; options: CosentryAddOptions }; + cosentry_del: { args: CosentryDelArgs; options: CosentryDelOptions }; + cosentry_find: { args: CosentryFindArgs; options: CosentryFindOptions }; + cosentry_mod: { args: CosentryModArgs; options: CosentryModOptions }; + cosentry_show: { args: CosentryShowArgs; options: CosentryShowOptions }; + delegation_add: { args: DelegationAddArgs; options: DelegationAddOptions }; + delegation_del: { args: DelegationDelArgs; options: DelegationDelOptions }; + delegation_find: { args: DelegationFindArgs; options: DelegationFindOptions }; + delegation_mod: { args: DelegationModArgs; options: DelegationModOptions }; + delegation_show: { args: DelegationShowArgs; options: DelegationShowOptions }; + dns_is_enabled: { args: DnsIsEnabledArgs; options: DnsIsEnabledOptions }; + dns_resolve: { args: DnsResolveArgs; options: DnsResolveOptions }; + dns_update_system_records: { + args: DnsUpdateSystemRecordsArgs; + options: DnsUpdateSystemRecordsOptions; + }; + dnsconfig_mod: { args: DnsconfigModArgs; options: DnsconfigModOptions }; + dnsconfig_show: { args: DnsconfigShowArgs; options: DnsconfigShowOptions }; + dnsforwardzone_add: { + args: DnsforwardzoneAddArgs; + options: DnsforwardzoneAddOptions; + }; + dnsforwardzone_add_permission: { + args: DnsforwardzoneAddPermissionArgs; + options: DnsforwardzoneAddPermissionOptions; + }; + dnsforwardzone_del: { + args: DnsforwardzoneDelArgs; + options: DnsforwardzoneDelOptions; + }; + dnsforwardzone_disable: { + args: DnsforwardzoneDisableArgs; + options: DnsforwardzoneDisableOptions; + }; + dnsforwardzone_enable: { + args: DnsforwardzoneEnableArgs; + options: DnsforwardzoneEnableOptions; + }; + dnsforwardzone_find: { + args: DnsforwardzoneFindArgs; + options: DnsforwardzoneFindOptions; + }; + dnsforwardzone_mod: { + args: DnsforwardzoneModArgs; + options: DnsforwardzoneModOptions; + }; + dnsforwardzone_remove_permission: { + args: DnsforwardzoneRemovePermissionArgs; + options: DnsforwardzoneRemovePermissionOptions; + }; + dnsforwardzone_show: { + args: DnsforwardzoneShowArgs; + options: DnsforwardzoneShowOptions; + }; + dnsrecord_add: { args: DnsrecordAddArgs; options: DnsrecordAddOptions }; + dnsrecord_del: { args: DnsrecordDelArgs; options: DnsrecordDelOptions }; + dnsrecord_delentry: { + args: DnsrecordDelentryArgs; + options: DnsrecordDelentryOptions; + }; + dnsrecord_find: { args: DnsrecordFindArgs; options: DnsrecordFindOptions }; + dnsrecord_mod: { args: DnsrecordModArgs; options: DnsrecordModOptions }; + dnsrecord_show: { args: DnsrecordShowArgs; options: DnsrecordShowOptions }; + dnsrecord_split_parts: { + args: DnsrecordSplitPartsArgs; + options: DnsrecordSplitPartsOptions; + }; + dnsserver_find: { args: DnsserverFindArgs; options: DnsserverFindOptions }; + dnsserver_mod: { args: DnsserverModArgs; options: DnsserverModOptions }; + dnsserver_show: { args: DnsserverShowArgs; options: DnsserverShowOptions }; + dnszone_add: { args: DnszoneAddArgs; options: DnszoneAddOptions }; + dnszone_add_permission: { + args: DnszoneAddPermissionArgs; + options: DnszoneAddPermissionOptions; + }; + dnszone_del: { args: DnszoneDelArgs; options: DnszoneDelOptions }; + dnszone_disable: { args: DnszoneDisableArgs; options: DnszoneDisableOptions }; + dnszone_enable: { args: DnszoneEnableArgs; options: DnszoneEnableOptions }; + dnszone_find: { args: DnszoneFindArgs; options: DnszoneFindOptions }; + dnszone_mod: { args: DnszoneModArgs; options: DnszoneModOptions }; + dnszone_remove_permission: { + args: DnszoneRemovePermissionArgs; + options: DnszoneRemovePermissionOptions; + }; + dnszone_show: { args: DnszoneShowArgs; options: DnszoneShowOptions }; + domainlevel_get: { args: DomainlevelGetArgs; options: DomainlevelGetOptions }; + domainlevel_set: { args: DomainlevelSetArgs; options: DomainlevelSetOptions }; + env: { args: EnvArgs; options: EnvOptions }; + group_add: { args: GroupAddArgs; options: GroupAddOptions }; + group_add_member: { + args: GroupAddMemberArgs; + options: GroupAddMemberOptions; + }; + group_add_member_manager: { + args: GroupAddMemberManagerArgs; + options: GroupAddMemberManagerOptions; + }; + group_del: { args: GroupDelArgs; options: GroupDelOptions }; + group_detach: { args: GroupDetachArgs; options: GroupDetachOptions }; + group_find: { args: GroupFindArgs; options: GroupFindOptions }; + group_mod: { args: GroupModArgs; options: GroupModOptions }; + group_remove_member: { + args: GroupRemoveMemberArgs; + options: GroupRemoveMemberOptions; + }; + group_remove_member_manager: { + args: GroupRemoveMemberManagerArgs; + options: GroupRemoveMemberManagerOptions; + }; + group_show: { args: GroupShowArgs; options: GroupShowOptions }; + hbacrule_add: { args: HbacruleAddArgs; options: HbacruleAddOptions }; + hbacrule_add_host: { + args: HbacruleAddHostArgs; + options: HbacruleAddHostOptions; + }; + hbacrule_add_service: { + args: HbacruleAddServiceArgs; + options: HbacruleAddServiceOptions; + }; + hbacrule_add_sourcehost: { + args: HbacruleAddSourcehostArgs; + options: HbacruleAddSourcehostOptions; + }; + hbacrule_add_user: { + args: HbacruleAddUserArgs; + options: HbacruleAddUserOptions; + }; + hbacrule_del: { args: HbacruleDelArgs; options: HbacruleDelOptions }; + hbacrule_disable: { + args: HbacruleDisableArgs; + options: HbacruleDisableOptions; + }; + hbacrule_enable: { args: HbacruleEnableArgs; options: HbacruleEnableOptions }; + hbacrule_find: { args: HbacruleFindArgs; options: HbacruleFindOptions }; + hbacrule_mod: { args: HbacruleModArgs; options: HbacruleModOptions }; + hbacrule_remove_host: { + args: HbacruleRemoveHostArgs; + options: HbacruleRemoveHostOptions; + }; + hbacrule_remove_service: { + args: HbacruleRemoveServiceArgs; + options: HbacruleRemoveServiceOptions; + }; + hbacrule_remove_sourcehost: { + args: HbacruleRemoveSourcehostArgs; + options: HbacruleRemoveSourcehostOptions; + }; + hbacrule_remove_user: { + args: HbacruleRemoveUserArgs; + options: HbacruleRemoveUserOptions; + }; + hbacrule_show: { args: HbacruleShowArgs; options: HbacruleShowOptions }; + hbacsvc_add: { args: HbacsvcAddArgs; options: HbacsvcAddOptions }; + hbacsvc_del: { args: HbacsvcDelArgs; options: HbacsvcDelOptions }; + hbacsvc_find: { args: HbacsvcFindArgs; options: HbacsvcFindOptions }; + hbacsvc_mod: { args: HbacsvcModArgs; options: HbacsvcModOptions }; + hbacsvc_show: { args: HbacsvcShowArgs; options: HbacsvcShowOptions }; + hbacsvcgroup_add: { + args: HbacsvcgroupAddArgs; + options: HbacsvcgroupAddOptions; + }; + hbacsvcgroup_add_member: { + args: HbacsvcgroupAddMemberArgs; + options: HbacsvcgroupAddMemberOptions; + }; + hbacsvcgroup_del: { + args: HbacsvcgroupDelArgs; + options: HbacsvcgroupDelOptions; + }; + hbacsvcgroup_find: { + args: HbacsvcgroupFindArgs; + options: HbacsvcgroupFindOptions; + }; + hbacsvcgroup_mod: { + args: HbacsvcgroupModArgs; + options: HbacsvcgroupModOptions; + }; + hbacsvcgroup_remove_member: { + args: HbacsvcgroupRemoveMemberArgs; + options: HbacsvcgroupRemoveMemberOptions; + }; + hbacsvcgroup_show: { + args: HbacsvcgroupShowArgs; + options: HbacsvcgroupShowOptions; + }; + hbactest: { args: HbactestArgs; options: HbactestOptions }; + host_add: { args: HostAddArgs; options: HostAddOptions }; + host_add_cert: { args: HostAddCertArgs; options: HostAddCertOptions }; + host_add_delegation: { + args: HostAddDelegationArgs; + options: HostAddDelegationOptions; + }; + host_add_managedby: { + args: HostAddManagedbyArgs; + options: HostAddManagedbyOptions; + }; + host_add_principal: { + args: HostAddPrincipalArgs; + options: HostAddPrincipalOptions; + }; + host_allow_add_delegation: { + args: HostAllowAddDelegationArgs; + options: HostAllowAddDelegationOptions; + }; + host_allow_create_keytab: { + args: HostAllowCreateKeytabArgs; + options: HostAllowCreateKeytabOptions; + }; + host_allow_retrieve_keytab: { + args: HostAllowRetrieveKeytabArgs; + options: HostAllowRetrieveKeytabOptions; + }; + host_del: { args: HostDelArgs; options: HostDelOptions }; + host_disable: { args: HostDisableArgs; options: HostDisableOptions }; + host_disallow_add_delegation: { + args: HostDisallowAddDelegationArgs; + options: HostDisallowAddDelegationOptions; + }; + host_disallow_create_keytab: { + args: HostDisallowCreateKeytabArgs; + options: HostDisallowCreateKeytabOptions; + }; + host_disallow_retrieve_keytab: { + args: HostDisallowRetrieveKeytabArgs; + options: HostDisallowRetrieveKeytabOptions; + }; + host_find: { args: HostFindArgs; options: HostFindOptions }; + host_mod: { args: HostModArgs; options: HostModOptions }; + host_remove_cert: { + args: HostRemoveCertArgs; + options: HostRemoveCertOptions; + }; + host_remove_delegation: { + args: HostRemoveDelegationArgs; + options: HostRemoveDelegationOptions; + }; + host_remove_managedby: { + args: HostRemoveManagedbyArgs; + options: HostRemoveManagedbyOptions; + }; + host_remove_principal: { + args: HostRemovePrincipalArgs; + options: HostRemovePrincipalOptions; + }; + host_show: { args: HostShowArgs; options: HostShowOptions }; + hostgroup_add: { args: HostgroupAddArgs; options: HostgroupAddOptions }; + hostgroup_add_member: { + args: HostgroupAddMemberArgs; + options: HostgroupAddMemberOptions; + }; + hostgroup_add_member_manager: { + args: HostgroupAddMemberManagerArgs; + options: HostgroupAddMemberManagerOptions; + }; + hostgroup_del: { args: HostgroupDelArgs; options: HostgroupDelOptions }; + hostgroup_find: { args: HostgroupFindArgs; options: HostgroupFindOptions }; + hostgroup_mod: { args: HostgroupModArgs; options: HostgroupModOptions }; + hostgroup_remove_member: { + args: HostgroupRemoveMemberArgs; + options: HostgroupRemoveMemberOptions; + }; + hostgroup_remove_member_manager: { + args: HostgroupRemoveMemberManagerArgs; + options: HostgroupRemoveMemberManagerOptions; + }; + hostgroup_show: { args: HostgroupShowArgs; options: HostgroupShowOptions }; + i18n_messages: { args: I18nMessagesArgs; options: I18nMessagesOptions }; + idoverridegroup_add: { + args: IdoverridegroupAddArgs; + options: IdoverridegroupAddOptions; + }; + idoverridegroup_del: { + args: IdoverridegroupDelArgs; + options: IdoverridegroupDelOptions; + }; + idoverridegroup_find: { + args: IdoverridegroupFindArgs; + options: IdoverridegroupFindOptions; + }; + idoverridegroup_mod: { + args: IdoverridegroupModArgs; + options: IdoverridegroupModOptions; + }; + idoverridegroup_show: { + args: IdoverridegroupShowArgs; + options: IdoverridegroupShowOptions; + }; + idoverrideuser_add: { + args: IdoverrideuserAddArgs; + options: IdoverrideuserAddOptions; + }; + idoverrideuser_add_cert: { + args: IdoverrideuserAddCertArgs; + options: IdoverrideuserAddCertOptions; + }; + idoverrideuser_del: { + args: IdoverrideuserDelArgs; + options: IdoverrideuserDelOptions; + }; + idoverrideuser_find: { + args: IdoverrideuserFindArgs; + options: IdoverrideuserFindOptions; + }; + idoverrideuser_mod: { + args: IdoverrideuserModArgs; + options: IdoverrideuserModOptions; + }; + idoverrideuser_remove_cert: { + args: IdoverrideuserRemoveCertArgs; + options: IdoverrideuserRemoveCertOptions; + }; + idoverrideuser_show: { + args: IdoverrideuserShowArgs; + options: IdoverrideuserShowOptions; + }; + idp_add: { args: IdpAddArgs; options: IdpAddOptions }; + idp_del: { args: IdpDelArgs; options: IdpDelOptions }; + idp_find: { args: IdpFindArgs; options: IdpFindOptions }; + idp_mod: { args: IdpModArgs; options: IdpModOptions }; + idp_show: { args: IdpShowArgs; options: IdpShowOptions }; + idrange_add: { args: IdrangeAddArgs; options: IdrangeAddOptions }; + idrange_del: { args: IdrangeDelArgs; options: IdrangeDelOptions }; + idrange_find: { args: IdrangeFindArgs; options: IdrangeFindOptions }; + idrange_mod: { args: IdrangeModArgs; options: IdrangeModOptions }; + idrange_show: { args: IdrangeShowArgs; options: IdrangeShowOptions }; + idview_add: { args: IdviewAddArgs; options: IdviewAddOptions }; + idview_apply: { args: IdviewApplyArgs; options: IdviewApplyOptions }; + idview_del: { args: IdviewDelArgs; options: IdviewDelOptions }; + idview_find: { args: IdviewFindArgs; options: IdviewFindOptions }; + idview_mod: { args: IdviewModArgs; options: IdviewModOptions }; + idview_show: { args: IdviewShowArgs; options: IdviewShowOptions }; + idview_unapply: { args: IdviewUnapplyArgs; options: IdviewUnapplyOptions }; + join: { args: JoinArgs; options: JoinOptions }; + json_metadata: { args: JsonMetadataArgs; options: JsonMetadataOptions }; + kra_is_enabled: { args: KraIsEnabledArgs; options: KraIsEnabledOptions }; + krbtpolicy_mod: { args: KrbtpolicyModArgs; options: KrbtpolicyModOptions }; + krbtpolicy_reset: { + args: KrbtpolicyResetArgs; + options: KrbtpolicyResetOptions; + }; + krbtpolicy_show: { args: KrbtpolicyShowArgs; options: KrbtpolicyShowOptions }; + location_add: { args: LocationAddArgs; options: LocationAddOptions }; + location_del: { args: LocationDelArgs; options: LocationDelOptions }; + location_find: { args: LocationFindArgs; options: LocationFindOptions }; + location_mod: { args: LocationModArgs; options: LocationModOptions }; + location_show: { args: LocationShowArgs; options: LocationShowOptions }; + migrate_ds: { args: MigrateDsArgs; options: MigrateDsOptions }; + netgroup_add: { args: NetgroupAddArgs; options: NetgroupAddOptions }; + netgroup_add_member: { + args: NetgroupAddMemberArgs; + options: NetgroupAddMemberOptions; + }; + netgroup_del: { args: NetgroupDelArgs; options: NetgroupDelOptions }; + netgroup_find: { args: NetgroupFindArgs; options: NetgroupFindOptions }; + netgroup_mod: { args: NetgroupModArgs; options: NetgroupModOptions }; + netgroup_remove_member: { + args: NetgroupRemoveMemberArgs; + options: NetgroupRemoveMemberOptions; + }; + netgroup_show: { args: NetgroupShowArgs; options: NetgroupShowOptions }; + otpconfig_mod: { args: OtpconfigModArgs; options: OtpconfigModOptions }; + otpconfig_show: { args: OtpconfigShowArgs; options: OtpconfigShowOptions }; + otptoken_add: { args: OtptokenAddArgs; options: OtptokenAddOptions }; + otptoken_add_managedby: { + args: OtptokenAddManagedbyArgs; + options: OtptokenAddManagedbyOptions; + }; + otptoken_del: { args: OtptokenDelArgs; options: OtptokenDelOptions }; + otptoken_find: { args: OtptokenFindArgs; options: OtptokenFindOptions }; + otptoken_mod: { args: OtptokenModArgs; options: OtptokenModOptions }; + otptoken_remove_managedby: { + args: OtptokenRemoveManagedbyArgs; + options: OtptokenRemoveManagedbyOptions; + }; + otptoken_show: { args: OtptokenShowArgs; options: OtptokenShowOptions }; + output_find: { args: OutputFindArgs; options: OutputFindOptions }; + output_show: { args: OutputShowArgs; options: OutputShowOptions }; + param_find: { args: ParamFindArgs; options: ParamFindOptions }; + param_show: { args: ParamShowArgs; options: ParamShowOptions }; + passkeyconfig_mod: { + args: PasskeyconfigModArgs; + options: PasskeyconfigModOptions; + }; + passkeyconfig_show: { + args: PasskeyconfigShowArgs; + options: PasskeyconfigShowOptions; + }; + passwd: { args: PasswdArgs; options: PasswdOptions }; + permission_add: { args: PermissionAddArgs; options: PermissionAddOptions }; + permission_add_member: { + args: PermissionAddMemberArgs; + options: PermissionAddMemberOptions; + }; + permission_add_noaci: { + args: PermissionAddNoaciArgs; + options: PermissionAddNoaciOptions; + }; + permission_del: { args: PermissionDelArgs; options: PermissionDelOptions }; + permission_find: { args: PermissionFindArgs; options: PermissionFindOptions }; + permission_mod: { args: PermissionModArgs; options: PermissionModOptions }; + permission_remove_member: { + args: PermissionRemoveMemberArgs; + options: PermissionRemoveMemberOptions; + }; + permission_show: { args: PermissionShowArgs; options: PermissionShowOptions }; + ping: { args: PingArgs; options: PingOptions }; + pkinit_status: { args: PkinitStatusArgs; options: PkinitStatusOptions }; + plugins: { args: PluginsArgs; options: PluginsOptions }; + privilege_add: { args: PrivilegeAddArgs; options: PrivilegeAddOptions }; + privilege_add_member: { + args: PrivilegeAddMemberArgs; + options: PrivilegeAddMemberOptions; + }; + privilege_add_permission: { + args: PrivilegeAddPermissionArgs; + options: PrivilegeAddPermissionOptions; + }; + privilege_del: { args: PrivilegeDelArgs; options: PrivilegeDelOptions }; + privilege_find: { args: PrivilegeFindArgs; options: PrivilegeFindOptions }; + privilege_mod: { args: PrivilegeModArgs; options: PrivilegeModOptions }; + privilege_remove_member: { + args: PrivilegeRemoveMemberArgs; + options: PrivilegeRemoveMemberOptions; + }; + privilege_remove_permission: { + args: PrivilegeRemovePermissionArgs; + options: PrivilegeRemovePermissionOptions; + }; + privilege_show: { args: PrivilegeShowArgs; options: PrivilegeShowOptions }; + pwpolicy_add: { args: PwpolicyAddArgs; options: PwpolicyAddOptions }; + pwpolicy_del: { args: PwpolicyDelArgs; options: PwpolicyDelOptions }; + pwpolicy_find: { args: PwpolicyFindArgs; options: PwpolicyFindOptions }; + pwpolicy_mod: { args: PwpolicyModArgs; options: PwpolicyModOptions }; + pwpolicy_show: { args: PwpolicyShowArgs; options: PwpolicyShowOptions }; + radiusproxy_add: { args: RadiusproxyAddArgs; options: RadiusproxyAddOptions }; + radiusproxy_del: { args: RadiusproxyDelArgs; options: RadiusproxyDelOptions }; + radiusproxy_find: { + args: RadiusproxyFindArgs; + options: RadiusproxyFindOptions; + }; + radiusproxy_mod: { args: RadiusproxyModArgs; options: RadiusproxyModOptions }; + radiusproxy_show: { + args: RadiusproxyShowArgs; + options: RadiusproxyShowOptions; + }; + realmdomains_mod: { + args: RealmdomainsModArgs; + options: RealmdomainsModOptions; + }; + realmdomains_show: { + args: RealmdomainsShowArgs; + options: RealmdomainsShowOptions; + }; + role_add: { args: RoleAddArgs; options: RoleAddOptions }; + role_add_member: { args: RoleAddMemberArgs; options: RoleAddMemberOptions }; + role_add_privilege: { + args: RoleAddPrivilegeArgs; + options: RoleAddPrivilegeOptions; + }; + role_del: { args: RoleDelArgs; options: RoleDelOptions }; + role_find: { args: RoleFindArgs; options: RoleFindOptions }; + role_mod: { args: RoleModArgs; options: RoleModOptions }; + role_remove_member: { + args: RoleRemoveMemberArgs; + options: RoleRemoveMemberOptions; + }; + role_remove_privilege: { + args: RoleRemovePrivilegeArgs; + options: RoleRemovePrivilegeOptions; + }; + role_show: { args: RoleShowArgs; options: RoleShowOptions }; + schema: { args: SchemaArgs; options: SchemaOptions }; + selfservice_add: { args: SelfserviceAddArgs; options: SelfserviceAddOptions }; + selfservice_del: { args: SelfserviceDelArgs; options: SelfserviceDelOptions }; + selfservice_find: { + args: SelfserviceFindArgs; + options: SelfserviceFindOptions; + }; + selfservice_mod: { args: SelfserviceModArgs; options: SelfserviceModOptions }; + selfservice_show: { + args: SelfserviceShowArgs; + options: SelfserviceShowOptions; + }; + selinuxusermap_add: { + args: SelinuxusermapAddArgs; + options: SelinuxusermapAddOptions; + }; + selinuxusermap_add_host: { + args: SelinuxusermapAddHostArgs; + options: SelinuxusermapAddHostOptions; + }; + selinuxusermap_add_user: { + args: SelinuxusermapAddUserArgs; + options: SelinuxusermapAddUserOptions; + }; + selinuxusermap_del: { + args: SelinuxusermapDelArgs; + options: SelinuxusermapDelOptions; + }; + selinuxusermap_disable: { + args: SelinuxusermapDisableArgs; + options: SelinuxusermapDisableOptions; + }; + selinuxusermap_enable: { + args: SelinuxusermapEnableArgs; + options: SelinuxusermapEnableOptions; + }; + selinuxusermap_find: { + args: SelinuxusermapFindArgs; + options: SelinuxusermapFindOptions; + }; + selinuxusermap_mod: { + args: SelinuxusermapModArgs; + options: SelinuxusermapModOptions; + }; + selinuxusermap_remove_host: { + args: SelinuxusermapRemoveHostArgs; + options: SelinuxusermapRemoveHostOptions; + }; + selinuxusermap_remove_user: { + args: SelinuxusermapRemoveUserArgs; + options: SelinuxusermapRemoveUserOptions; + }; + selinuxusermap_show: { + args: SelinuxusermapShowArgs; + options: SelinuxusermapShowOptions; + }; + server_conncheck: { + args: ServerConncheckArgs; + options: ServerConncheckOptions; + }; + server_del: { args: ServerDelArgs; options: ServerDelOptions }; + server_find: { args: ServerFindArgs; options: ServerFindOptions }; + server_mod: { args: ServerModArgs; options: ServerModOptions }; + server_role_find: { + args: ServerRoleFindArgs; + options: ServerRoleFindOptions; + }; + server_role_show: { + args: ServerRoleShowArgs; + options: ServerRoleShowOptions; + }; + server_show: { args: ServerShowArgs; options: ServerShowOptions }; + server_state: { args: ServerStateArgs; options: ServerStateOptions }; + service_add: { args: ServiceAddArgs; options: ServiceAddOptions }; + service_add_cert: { + args: ServiceAddCertArgs; + options: ServiceAddCertOptions; + }; + service_add_delegation: { + args: ServiceAddDelegationArgs; + options: ServiceAddDelegationOptions; + }; + service_add_host: { + args: ServiceAddHostArgs; + options: ServiceAddHostOptions; + }; + service_add_principal: { + args: ServiceAddPrincipalArgs; + options: ServiceAddPrincipalOptions; + }; + service_add_smb: { args: ServiceAddSmbArgs; options: ServiceAddSmbOptions }; + service_allow_add_delegation: { + args: ServiceAllowAddDelegationArgs; + options: ServiceAllowAddDelegationOptions; + }; + service_allow_create_keytab: { + args: ServiceAllowCreateKeytabArgs; + options: ServiceAllowCreateKeytabOptions; + }; + service_allow_retrieve_keytab: { + args: ServiceAllowRetrieveKeytabArgs; + options: ServiceAllowRetrieveKeytabOptions; + }; + service_del: { args: ServiceDelArgs; options: ServiceDelOptions }; + service_disable: { args: ServiceDisableArgs; options: ServiceDisableOptions }; + service_disallow_add_delegation: { + args: ServiceDisallowAddDelegationArgs; + options: ServiceDisallowAddDelegationOptions; + }; + service_disallow_create_keytab: { + args: ServiceDisallowCreateKeytabArgs; + options: ServiceDisallowCreateKeytabOptions; + }; + service_disallow_retrieve_keytab: { + args: ServiceDisallowRetrieveKeytabArgs; + options: ServiceDisallowRetrieveKeytabOptions; + }; + service_find: { args: ServiceFindArgs; options: ServiceFindOptions }; + service_mod: { args: ServiceModArgs; options: ServiceModOptions }; + service_remove_cert: { + args: ServiceRemoveCertArgs; + options: ServiceRemoveCertOptions; + }; + service_remove_delegation: { + args: ServiceRemoveDelegationArgs; + options: ServiceRemoveDelegationOptions; + }; + service_remove_host: { + args: ServiceRemoveHostArgs; + options: ServiceRemoveHostOptions; + }; + service_remove_principal: { + args: ServiceRemovePrincipalArgs; + options: ServiceRemovePrincipalOptions; + }; + service_show: { args: ServiceShowArgs; options: ServiceShowOptions }; + servicedelegationrule_add: { + args: ServicedelegationruleAddArgs; + options: ServicedelegationruleAddOptions; + }; + servicedelegationrule_add_member: { + args: ServicedelegationruleAddMemberArgs; + options: ServicedelegationruleAddMemberOptions; + }; + servicedelegationrule_add_target: { + args: ServicedelegationruleAddTargetArgs; + options: ServicedelegationruleAddTargetOptions; + }; + servicedelegationrule_del: { + args: ServicedelegationruleDelArgs; + options: ServicedelegationruleDelOptions; + }; + servicedelegationrule_find: { + args: ServicedelegationruleFindArgs; + options: ServicedelegationruleFindOptions; + }; + servicedelegationrule_remove_member: { + args: ServicedelegationruleRemoveMemberArgs; + options: ServicedelegationruleRemoveMemberOptions; + }; + servicedelegationrule_remove_target: { + args: ServicedelegationruleRemoveTargetArgs; + options: ServicedelegationruleRemoveTargetOptions; + }; + servicedelegationrule_show: { + args: ServicedelegationruleShowArgs; + options: ServicedelegationruleShowOptions; + }; + servicedelegationtarget_add: { + args: ServicedelegationtargetAddArgs; + options: ServicedelegationtargetAddOptions; + }; + servicedelegationtarget_add_member: { + args: ServicedelegationtargetAddMemberArgs; + options: ServicedelegationtargetAddMemberOptions; + }; + servicedelegationtarget_del: { + args: ServicedelegationtargetDelArgs; + options: ServicedelegationtargetDelOptions; + }; + servicedelegationtarget_find: { + args: ServicedelegationtargetFindArgs; + options: ServicedelegationtargetFindOptions; + }; + servicedelegationtarget_remove_member: { + args: ServicedelegationtargetRemoveMemberArgs; + options: ServicedelegationtargetRemoveMemberOptions; + }; + servicedelegationtarget_show: { + args: ServicedelegationtargetShowArgs; + options: ServicedelegationtargetShowOptions; + }; + session_logout: { args: SessionLogoutArgs; options: SessionLogoutOptions }; + sidgen_was_run: { args: SidgenWasRunArgs; options: SidgenWasRunOptions }; + stageuser_activate: { + args: StageuserActivateArgs; + options: StageuserActivateOptions; + }; + stageuser_add: { args: StageuserAddArgs; options: StageuserAddOptions }; + stageuser_add_cert: { + args: StageuserAddCertArgs; + options: StageuserAddCertOptions; + }; + stageuser_add_certmapdata: { + args: StageuserAddCertmapdataArgs; + options: StageuserAddCertmapdataOptions; + }; + stageuser_add_manager: { + args: StageuserAddManagerArgs; + options: StageuserAddManagerOptions; + }; + stageuser_add_passkey: { + args: StageuserAddPasskeyArgs; + options: StageuserAddPasskeyOptions; + }; + stageuser_add_principal: { + args: StageuserAddPrincipalArgs; + options: StageuserAddPrincipalOptions; + }; + stageuser_del: { args: StageuserDelArgs; options: StageuserDelOptions }; + stageuser_find: { args: StageuserFindArgs; options: StageuserFindOptions }; + stageuser_mod: { args: StageuserModArgs; options: StageuserModOptions }; + stageuser_remove_cert: { + args: StageuserRemoveCertArgs; + options: StageuserRemoveCertOptions; + }; + stageuser_remove_certmapdata: { + args: StageuserRemoveCertmapdataArgs; + options: StageuserRemoveCertmapdataOptions; + }; + stageuser_remove_manager: { + args: StageuserRemoveManagerArgs; + options: StageuserRemoveManagerOptions; + }; + stageuser_remove_passkey: { + args: StageuserRemovePasskeyArgs; + options: StageuserRemovePasskeyOptions; + }; + stageuser_remove_principal: { + args: StageuserRemovePrincipalArgs; + options: StageuserRemovePrincipalOptions; + }; + stageuser_show: { args: StageuserShowArgs; options: StageuserShowOptions }; + subid_add: { args: SubidAddArgs; options: SubidAddOptions }; + subid_del: { args: SubidDelArgs; options: SubidDelOptions }; + subid_find: { args: SubidFindArgs; options: SubidFindOptions }; + subid_generate: { args: SubidGenerateArgs; options: SubidGenerateOptions }; + subid_match: { args: SubidMatchArgs; options: SubidMatchOptions }; + subid_mod: { args: SubidModArgs; options: SubidModOptions }; + subid_show: { args: SubidShowArgs; options: SubidShowOptions }; + subid_stats: { args: SubidStatsArgs; options: SubidStatsOptions }; + sudocmd_add: { args: SudocmdAddArgs; options: SudocmdAddOptions }; + sudocmd_del: { args: SudocmdDelArgs; options: SudocmdDelOptions }; + sudocmd_find: { args: SudocmdFindArgs; options: SudocmdFindOptions }; + sudocmd_mod: { args: SudocmdModArgs; options: SudocmdModOptions }; + sudocmd_show: { args: SudocmdShowArgs; options: SudocmdShowOptions }; + sudocmdgroup_add: { + args: SudocmdgroupAddArgs; + options: SudocmdgroupAddOptions; + }; + sudocmdgroup_add_member: { + args: SudocmdgroupAddMemberArgs; + options: SudocmdgroupAddMemberOptions; + }; + sudocmdgroup_del: { + args: SudocmdgroupDelArgs; + options: SudocmdgroupDelOptions; + }; + sudocmdgroup_find: { + args: SudocmdgroupFindArgs; + options: SudocmdgroupFindOptions; + }; + sudocmdgroup_mod: { + args: SudocmdgroupModArgs; + options: SudocmdgroupModOptions; + }; + sudocmdgroup_remove_member: { + args: SudocmdgroupRemoveMemberArgs; + options: SudocmdgroupRemoveMemberOptions; + }; + sudocmdgroup_show: { + args: SudocmdgroupShowArgs; + options: SudocmdgroupShowOptions; + }; + sudorule_add: { args: SudoruleAddArgs; options: SudoruleAddOptions }; + sudorule_add_allow_command: { + args: SudoruleAddAllowCommandArgs; + options: SudoruleAddAllowCommandOptions; + }; + sudorule_add_deny_command: { + args: SudoruleAddDenyCommandArgs; + options: SudoruleAddDenyCommandOptions; + }; + sudorule_add_host: { + args: SudoruleAddHostArgs; + options: SudoruleAddHostOptions; + }; + sudorule_add_option: { + args: SudoruleAddOptionArgs; + options: SudoruleAddOptionOptions; + }; + sudorule_add_runasgroup: { + args: SudoruleAddRunasgroupArgs; + options: SudoruleAddRunasgroupOptions; + }; + sudorule_add_runasuser: { + args: SudoruleAddRunasuserArgs; + options: SudoruleAddRunasuserOptions; + }; + sudorule_add_user: { + args: SudoruleAddUserArgs; + options: SudoruleAddUserOptions; + }; + sudorule_del: { args: SudoruleDelArgs; options: SudoruleDelOptions }; + sudorule_disable: { + args: SudoruleDisableArgs; + options: SudoruleDisableOptions; + }; + sudorule_enable: { args: SudoruleEnableArgs; options: SudoruleEnableOptions }; + sudorule_find: { args: SudoruleFindArgs; options: SudoruleFindOptions }; + sudorule_mod: { args: SudoruleModArgs; options: SudoruleModOptions }; + sudorule_remove_allow_command: { + args: SudoruleRemoveAllowCommandArgs; + options: SudoruleRemoveAllowCommandOptions; + }; + sudorule_remove_deny_command: { + args: SudoruleRemoveDenyCommandArgs; + options: SudoruleRemoveDenyCommandOptions; + }; + sudorule_remove_host: { + args: SudoruleRemoveHostArgs; + options: SudoruleRemoveHostOptions; + }; + sudorule_remove_option: { + args: SudoruleRemoveOptionArgs; + options: SudoruleRemoveOptionOptions; + }; + sudorule_remove_runasgroup: { + args: SudoruleRemoveRunasgroupArgs; + options: SudoruleRemoveRunasgroupOptions; + }; + sudorule_remove_runasuser: { + args: SudoruleRemoveRunasuserArgs; + options: SudoruleRemoveRunasuserOptions; + }; + sudorule_remove_user: { + args: SudoruleRemoveUserArgs; + options: SudoruleRemoveUserOptions; + }; + sudorule_show: { args: SudoruleShowArgs; options: SudoruleShowOptions }; + sysaccount_add: { args: SysaccountAddArgs; options: SysaccountAddOptions }; + sysaccount_del: { args: SysaccountDelArgs; options: SysaccountDelOptions }; + sysaccount_disable: { + args: SysaccountDisableArgs; + options: SysaccountDisableOptions; + }; + sysaccount_enable: { + args: SysaccountEnableArgs; + options: SysaccountEnableOptions; + }; + sysaccount_find: { args: SysaccountFindArgs; options: SysaccountFindOptions }; + sysaccount_mod: { args: SysaccountModArgs; options: SysaccountModOptions }; + sysaccount_policy: { + args: SysaccountPolicyArgs; + options: SysaccountPolicyOptions; + }; + sysaccount_show: { args: SysaccountShowArgs; options: SysaccountShowOptions }; + topic_find: { args: TopicFindArgs; options: TopicFindOptions }; + topic_show: { args: TopicShowArgs; options: TopicShowOptions }; + topologysegment_add: { + args: TopologysegmentAddArgs; + options: TopologysegmentAddOptions; + }; + topologysegment_del: { + args: TopologysegmentDelArgs; + options: TopologysegmentDelOptions; + }; + topologysegment_find: { + args: TopologysegmentFindArgs; + options: TopologysegmentFindOptions; + }; + topologysegment_mod: { + args: TopologysegmentModArgs; + options: TopologysegmentModOptions; + }; + topologysegment_reinitialize: { + args: TopologysegmentReinitializeArgs; + options: TopologysegmentReinitializeOptions; + }; + topologysegment_show: { + args: TopologysegmentShowArgs; + options: TopologysegmentShowOptions; + }; + topologysuffix_add: { + args: TopologysuffixAddArgs; + options: TopologysuffixAddOptions; + }; + topologysuffix_del: { + args: TopologysuffixDelArgs; + options: TopologysuffixDelOptions; + }; + topologysuffix_find: { + args: TopologysuffixFindArgs; + options: TopologysuffixFindOptions; + }; + topologysuffix_mod: { + args: TopologysuffixModArgs; + options: TopologysuffixModOptions; + }; + topologysuffix_show: { + args: TopologysuffixShowArgs; + options: TopologysuffixShowOptions; + }; + topologysuffix_verify: { + args: TopologysuffixVerifyArgs; + options: TopologysuffixVerifyOptions; + }; + trust_add: { args: TrustAddArgs; options: TrustAddOptions }; + trust_del: { args: TrustDelArgs; options: TrustDelOptions }; + trust_enable_agent: { + args: TrustEnableAgentArgs; + options: TrustEnableAgentOptions; + }; + trust_fetch_domains: { + args: TrustFetchDomainsArgs; + options: TrustFetchDomainsOptions; + }; + trust_find: { args: TrustFindArgs; options: TrustFindOptions }; + trust_mod: { args: TrustModArgs; options: TrustModOptions }; + trust_resolve: { args: TrustResolveArgs; options: TrustResolveOptions }; + trust_show: { args: TrustShowArgs; options: TrustShowOptions }; + trustconfig_mod: { args: TrustconfigModArgs; options: TrustconfigModOptions }; + trustconfig_show: { + args: TrustconfigShowArgs; + options: TrustconfigShowOptions; + }; + trustdomain_add: { args: TrustdomainAddArgs; options: TrustdomainAddOptions }; + trustdomain_del: { args: TrustdomainDelArgs; options: TrustdomainDelOptions }; + trustdomain_disable: { + args: TrustdomainDisableArgs; + options: TrustdomainDisableOptions; + }; + trustdomain_enable: { + args: TrustdomainEnableArgs; + options: TrustdomainEnableOptions; + }; + trustdomain_find: { + args: TrustdomainFindArgs; + options: TrustdomainFindOptions; + }; + trustdomain_mod: { args: TrustdomainModArgs; options: TrustdomainModOptions }; + user_add: { args: UserAddArgs; options: UserAddOptions }; + user_add_cert: { args: UserAddCertArgs; options: UserAddCertOptions }; + user_add_certmapdata: { + args: UserAddCertmapdataArgs; + options: UserAddCertmapdataOptions; + }; + user_add_manager: { + args: UserAddManagerArgs; + options: UserAddManagerOptions; + }; + user_add_passkey: { + args: UserAddPasskeyArgs; + options: UserAddPasskeyOptions; + }; + user_add_principal: { + args: UserAddPrincipalArgs; + options: UserAddPrincipalOptions; + }; + user_del: { args: UserDelArgs; options: UserDelOptions }; + user_disable: { args: UserDisableArgs; options: UserDisableOptions }; + user_enable: { args: UserEnableArgs; options: UserEnableOptions }; + user_find: { args: UserFindArgs; options: UserFindOptions }; + user_mod: { args: UserModArgs; options: UserModOptions }; + user_remove_cert: { + args: UserRemoveCertArgs; + options: UserRemoveCertOptions; + }; + user_remove_certmapdata: { + args: UserRemoveCertmapdataArgs; + options: UserRemoveCertmapdataOptions; + }; + user_remove_manager: { + args: UserRemoveManagerArgs; + options: UserRemoveManagerOptions; + }; + user_remove_passkey: { + args: UserRemovePasskeyArgs; + options: UserRemovePasskeyOptions; + }; + user_remove_principal: { + args: UserRemovePrincipalArgs; + options: UserRemovePrincipalOptions; + }; + user_show: { args: UserShowArgs; options: UserShowOptions }; + user_stage: { args: UserStageArgs; options: UserStageOptions }; + user_status: { args: UserStatusArgs; options: UserStatusOptions }; + user_undel: { args: UserUndelArgs; options: UserUndelOptions }; + user_unlock: { args: UserUnlockArgs; options: UserUnlockOptions }; + vault_add_internal: { + args: VaultAddInternalArgs; + options: VaultAddInternalOptions; + }; + vault_add_member: { + args: VaultAddMemberArgs; + options: VaultAddMemberOptions; + }; + vault_add_owner: { args: VaultAddOwnerArgs; options: VaultAddOwnerOptions }; + vault_archive_internal: { + args: VaultArchiveInternalArgs; + options: VaultArchiveInternalOptions; + }; + vault_del: { args: VaultDelArgs; options: VaultDelOptions }; + vault_find: { args: VaultFindArgs; options: VaultFindOptions }; + vault_mod_internal: { + args: VaultModInternalArgs; + options: VaultModInternalOptions; + }; + vault_remove_member: { + args: VaultRemoveMemberArgs; + options: VaultRemoveMemberOptions; + }; + vault_remove_owner: { + args: VaultRemoveOwnerArgs; + options: VaultRemoveOwnerOptions; + }; + vault_retrieve_internal: { + args: VaultRetrieveInternalArgs; + options: VaultRetrieveInternalOptions; + }; + vault_show: { args: VaultShowArgs; options: VaultShowOptions }; + vaultconfig_show: { + args: VaultconfigShowArgs; + options: VaultconfigShowOptions; + }; + vaultcontainer_add_owner: { + args: VaultcontainerAddOwnerArgs; + options: VaultcontainerAddOwnerOptions; + }; + vaultcontainer_del: { + args: VaultcontainerDelArgs; + options: VaultcontainerDelOptions; + }; + vaultcontainer_remove_owner: { + args: VaultcontainerRemoveOwnerArgs; + options: VaultcontainerRemoveOwnerOptions; + }; + vaultcontainer_show: { + args: VaultcontainerShowArgs; + options: VaultcontainerShowOptions; + }; + whoami: { args: WhoamiArgs; options: WhoamiOptions }; +}; diff --git a/src/services/requests/krbtpolicy.ts b/src/services/requests/krbtpolicy.ts new file mode 100644 index 000000000..0e380e5ab --- /dev/null +++ b/src/services/requests/krbtpolicy.ts @@ -0,0 +1,48 @@ +export type KrbtpolicyModArgs = { + uid?: string; +}; + +export type KrbtpolicyModOptions = { + krbmaxticketlife?: number; + krbmaxrenewableage?: number; + krbauthindmaxticketlife_otp?: number; + krbauthindmaxrenewableage_otp?: number; + krbauthindmaxticketlife_radius?: number; + krbauthindmaxrenewableage_radius?: number; + krbauthindmaxticketlife_pkinit?: number; + krbauthindmaxrenewableage_pkinit?: number; + krbauthindmaxticketlife_hardened?: number; + krbauthindmaxrenewableage_hardened?: number; + krbauthindmaxticketlife_idp?: number; + krbauthindmaxrenewableage_idp?: number; + krbauthindmaxticketlife_passkey?: number; + krbauthindmaxrenewableage_passkey?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type KrbtpolicyResetArgs = { + uid?: string; +}; + +export type KrbtpolicyResetOptions = { + all: boolean; + raw: boolean; + version?: string; +}; + +export type KrbtpolicyShowArgs = { + uid?: string; +}; + +export type KrbtpolicyShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/location.ts b/src/services/requests/location.ts new file mode 100644 index 000000000..eb724ccb2 --- /dev/null +++ b/src/services/requests/location.ts @@ -0,0 +1,64 @@ +import { DNSName } from "../types/primitives"; + +export type LocationAddArgs = { + idnsname: DNSName; +}; + +export type LocationAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type LocationDelArgs = { + idnsname: DNSName; +}; + +export type LocationDelOptions = { + continue: boolean; + version?: string; +}; + +export type LocationFindArgs = { + criteria?: string; +}; + +export type LocationFindOptions = { + idnsname?: DNSName; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type LocationModArgs = { + idnsname: DNSName; +}; + +export type LocationModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type LocationShowArgs = { + idnsname: DNSName; +}; + +export type LocationShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/netgroup.ts b/src/services/requests/netgroup.ts new file mode 100644 index 000000000..d70bac611 --- /dev/null +++ b/src/services/requests/netgroup.ts @@ -0,0 +1,125 @@ +export type NetgroupAddArgs = { + cn: string; +}; + +export type NetgroupAddOptions = { + description?: string; + nisdomainname?: string; + usercategory?: "all"; + hostcategory?: "all"; + externalhost?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type NetgroupAddMemberArgs = { + cn: string; +}; + +export type NetgroupAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; + netgroup?: string; +}; + +export type NetgroupDelArgs = { + cn: string; +}; + +export type NetgroupDelOptions = { + continue: boolean; + version?: string; +}; + +export type NetgroupFindArgs = { + criteria?: string; +}; + +export type NetgroupFindOptions = { + cn?: string; + description?: string; + nisdomainname?: string; + ipauniqueid?: string; + usercategory?: "all"; + hostcategory?: "all"; + externalhost?: string; + timelimit?: number; + sizelimit?: number; + private: boolean; + managed: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + netgroup?: string; + no_netgroup?: string; + user?: string; + no_user?: string; + group?: string; + no_group?: string; + host?: string; + no_host?: string; + hostgroup?: string; + no_hostgroup?: string; + in_netgroup?: string; + not_in_netgroup?: string; +}; + +export type NetgroupModArgs = { + cn: string; +}; + +export type NetgroupModOptions = { + description?: string; + nisdomainname?: string; + usercategory?: "all"; + hostcategory?: "all"; + externalhost?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type NetgroupRemoveMemberArgs = { + cn: string; +}; + +export type NetgroupRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; + netgroup?: string; +}; + +export type NetgroupShowArgs = { + cn: string; +}; + +export type NetgroupShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/otpconfig.ts b/src/services/requests/otpconfig.ts new file mode 100644 index 000000000..221ec9a67 --- /dev/null +++ b/src/services/requests/otpconfig.ts @@ -0,0 +1,24 @@ +export type OtpconfigModArgs = null; + +export type OtpconfigModOptions = { + ipatokentotpauthwindow?: number; + ipatokentotpsyncwindow?: number; + ipatokenhotpauthwindow?: number; + ipatokenhotpsyncwindow?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type OtpconfigShowArgs = null; + +export type OtpconfigShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/otptoken.ts b/src/services/requests/otptoken.ts new file mode 100644 index 000000000..0a13033e7 --- /dev/null +++ b/src/services/requests/otptoken.ts @@ -0,0 +1,133 @@ +import { DateTime, Bytes } from "../types/primitives"; + +type TokenType = "totp" | "hotp" | "TOTP" | "HOTP"; + +type IpaTokenOtpAlgorithm = "sha1" | "sha256" | "sha384" | "sha512"; + +export type OtptokenAddArgs = { + ipatokenuniqueid?: string; +}; + +export type OtptokenAddOptions = { + type?: TokenType; + description?: string; + ipatokenowner?: string; + ipatokendisabled?: boolean; + ipatokennotbefore?: DateTime; + ipatokennotafter?: DateTime; + ipatokenvendor?: string; + ipatokenmodel?: string; + ipatokenserial?: string; + ipatokenotpkey?: Bytes; + ipatokenotpalgorithm?: IpaTokenOtpAlgorithm; + ipatokenotpdigits?: 6 | 8; + ipatokentotpclockoffset?: number; + ipatokentotptimestep?: number; + ipatokenhotpcounter?: number; + setattr?: string; + addattr?: string; + qrcode?: boolean; + no_qrcode: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type OtptokenAddManagedbyArgs = { + ipatokenuniqueid: string; +}; + +export type OtptokenAddManagedbyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; +}; + +export type OtptokenDelArgs = { + ipatokenuniqueid: string; +}; + +export type OtptokenDelOptions = { + continue: boolean; + version?: string; +}; + +export type OtptokenFindArgs = { + criteria?: string; +}; + +export type OtptokenFindOptions = { + ipatokenuniqueid?: string; + type?: TokenType; + description?: string; + ipatokenowner?: string; + ipatokendisabled?: boolean; + ipatokennotbefore?: DateTime; + ipatokennotafter?: DateTime; + ipatokenvendor?: string; + ipatokenmodel?: string; + ipatokenserial?: string; + ipatokenotpalgorithm?: IpaTokenOtpAlgorithm; + ipatokenotpdigits?: 6 | 8; + ipatokentotpclockoffset?: number; + ipatokentotptimestep?: number; + ipatokenhotpcounter?: number; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type OtptokenModArgs = { + ipatokenuniqueid: string; +}; + +export type OtptokenModOptions = { + description?: string; + ipatokenowner?: string; + ipatokendisabled?: boolean; + ipatokennotbefore?: DateTime; + ipatokennotafter?: DateTime; + ipatokenvendor?: string; + ipatokenmodel?: string; + ipatokenserial?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type OtptokenRemoveManagedbyArgs = { + ipatokenuniqueid: string; +}; + +export type OtptokenRemoveManagedbyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; +}; + +export type OtptokenShowArgs = { + ipatokenuniqueid: string; +}; + +export type OtptokenShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/output.ts b/src/services/requests/output.ts new file mode 100644 index 000000000..8179f0cdd --- /dev/null +++ b/src/services/requests/output.ts @@ -0,0 +1,22 @@ +export type OutputFindArgs = { + commandfull_name: string; + criteria?: string; +}; + +export type OutputFindOptions = { + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type OutputShowArgs = { + commandfull_name: string; + name: string; +}; + +export type OutputShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/param.ts b/src/services/requests/param.ts new file mode 100644 index 000000000..21aa3c2f3 --- /dev/null +++ b/src/services/requests/param.ts @@ -0,0 +1,22 @@ +export type ParamFindArgs = { + metaobjectfull_name: string; + criteria?: string; +}; + +export type ParamFindOptions = { + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type ParamShowArgs = { + metaobjectfull_name: string; + name: string; +}; + +export type ParamShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/passkeyconfig.ts b/src/services/requests/passkeyconfig.ts new file mode 100644 index 000000000..b0d29df2b --- /dev/null +++ b/src/services/requests/passkeyconfig.ts @@ -0,0 +1,21 @@ +export type PasskeyconfigModArgs = null; + +export type PasskeyconfigModOptions = { + iparequireuserverification?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type PasskeyconfigShowArgs = null; + +export type PasskeyconfigShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/permission.ts b/src/services/requests/permission.ts new file mode 100644 index 000000000..de6220a36 --- /dev/null +++ b/src/services/requests/permission.ts @@ -0,0 +1,164 @@ +import { DN } from "../types/primitives"; + +type IpaPermRight = + | "read" + | "search" + | "compare" + | "write" + | "add" + | "delete" + | "all"; + +type IpaPermBindRuleType = "permission" | "all" | "anonymous" | "self"; + +export type PermissionAddArgs = { + cn: string; +}; + +export type PermissionAddOptions = { + ipapermright?: IpaPermRight; + attrs?: string; + ipapermbindruletype: IpaPermBindRuleType; + ipapermlocation?: DN; + extratargetfilter?: string; + ipapermtargetfilter?: string; + ipapermtarget?: DN; + ipapermtargetto?: DN; + ipapermtargetfrom?: DN; + memberof?: string; + targetgroup?: string; + type?: string; + permissions?: string; + filter?: string; + subtree?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type PermissionAddMemberArgs = { + cn: string; +}; + +export type PermissionAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + privilege?: string; +}; + +export type PermissionAddNoaciArgs = { + cn: string; +}; + +export type PermissionAddNoaciOptions = { + ipapermissiontype: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type PermissionDelArgs = { + cn: string; +}; + +export type PermissionDelOptions = { + continue: boolean; + force: boolean; + version?: string; +}; + +export type PermissionFindArgs = { + criteria?: string; +}; + +export type PermissionFindOptions = { + cn?: string; + ipapermright?: IpaPermRight; + attrs?: string; + ipapermincludedattr?: string; + ipapermexcludedattr?: string; + ipapermdefaultattr?: string; + ipapermbindruletype?: IpaPermBindRuleType; + ipapermlocation?: DN; + extratargetfilter?: string; + ipapermtargetfilter?: string; + ipapermtarget?: DN; + ipapermtargetto?: DN; + ipapermtargetfrom?: DN; + memberof?: string; + targetgroup?: string; + type?: string; + permissions?: string; + filter?: string; + subtree?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type PermissionModArgs = { + cn: string; +}; + +export type PermissionModOptions = { + ipapermright?: IpaPermRight; + attrs?: string; + ipapermincludedattr?: string; + ipapermexcludedattr?: string; + ipapermbindruletype?: IpaPermBindRuleType; + ipapermlocation?: DN; + extratargetfilter?: string; + ipapermtargetfilter?: string; + ipapermtarget?: DN; + ipapermtargetto?: DN; + ipapermtargetfrom?: DN; + memberof?: string; + targetgroup?: string; + type?: string; + permissions?: string; + filter?: string; + subtree?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type PermissionRemoveMemberArgs = { + cn: string; +}; + +export type PermissionRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + privilege?: string; +}; + +export type PermissionShowArgs = { + cn: string; +}; + +export type PermissionShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/pkinit.ts b/src/services/requests/pkinit.ts new file mode 100644 index 000000000..dd96154fd --- /dev/null +++ b/src/services/requests/pkinit.ts @@ -0,0 +1,13 @@ +export type PkinitStatusArgs = { + criteria?: string; +}; + +export type PkinitStatusOptions = { + server_server?: string; + status?: "enabled" | "disabled"; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/privilege.ts b/src/services/requests/privilege.ts new file mode 100644 index 000000000..93c55c606 --- /dev/null +++ b/src/services/requests/privilege.ts @@ -0,0 +1,115 @@ +export type PrivilegeAddArgs = { + cn: string; +}; + +export type PrivilegeAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type PrivilegeAddMemberArgs = { + cn: string; +}; + +export type PrivilegeAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + role?: string; +}; + +export type PrivilegeAddPermissionArgs = { + cn: string; +}; + +export type PrivilegeAddPermissionOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + permission?: string; +}; + +export type PrivilegeDelArgs = { + cn: string; +}; + +export type PrivilegeDelOptions = { + continue: boolean; + version?: string; +}; + +export type PrivilegeFindArgs = { + criteria?: string; +}; + +export type PrivilegeFindOptions = { + cn?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type PrivilegeModArgs = { + cn: string; +}; + +export type PrivilegeModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type PrivilegeRemoveMemberArgs = { + cn: string; +}; + +export type PrivilegeRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + role?: string; +}; + +export type PrivilegeRemovePermissionArgs = { + cn: string; +}; + +export type PrivilegeRemovePermissionOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + permission?: string; +}; + +export type PrivilegeShowArgs = { + cn: string; +}; + +export type PrivilegeShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/pwpolicy.ts b/src/services/requests/pwpolicy.ts new file mode 100644 index 000000000..f080a0c3d --- /dev/null +++ b/src/services/requests/pwpolicy.ts @@ -0,0 +1,114 @@ +export type PwpolicyAddArgs = { + cn: string; +}; + +export type PwpolicyAddOptions = { + krbmaxpwdlife?: number; + krbminpwdlife?: number; + krbpwdhistorylength?: number; + krbpwdmindiffchars?: number; + krbpwdminlength?: number; + cospriority: number; + krbpwdmaxfailure?: number; + krbpwdfailurecountinterval?: number; + krbpwdlockoutduration?: number; + ipapwdmaxrepeat?: number; + ipapwdmaxsequence?: number; + ipapwddictcheck?: boolean; + ipapwdusercheck?: boolean; + ipapwddcredit?: number; + ipapwducredit?: number; + ipapwdlcredit?: number; + ipapwdocredit?: number; + passwordgracelimit?: number; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type PwpolicyDelArgs = { + cn: string; +}; + +export type PwpolicyDelOptions = { + continue: boolean; + version?: string; +}; + +export type PwpolicyFindArgs = { + criteria?: string; +}; + +export type PwpolicyFindOptions = { + cn?: string; + krbmaxpwdlife?: number; + krbminpwdlife?: number; + krbpwdhistorylength?: number; + krbpwdmindiffchars?: number; + krbpwdminlength?: number; + cospriority?: number; + krbpwdmaxfailure?: number; + krbpwdfailurecountinterval?: number; + krbpwdlockoutduration?: number; + ipapwdmaxrepeat?: number; + ipapwdmaxsequence?: number; + ipapwddictcheck?: boolean; + ipapwdusercheck?: boolean; + ipapwddcredit?: number; + ipapwducredit?: number; + ipapwdlcredit?: number; + ipapwdocredit?: number; + passwordgracelimit?: number; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type PwpolicyModArgs = { + cn?: string; +}; + +export type PwpolicyModOptions = { + krbmaxpwdlife?: number; + krbminpwdlife?: number; + krbpwdhistorylength?: number; + krbpwdmindiffchars?: number; + krbpwdminlength?: number; + cospriority?: number; + krbpwdmaxfailure?: number; + krbpwdfailurecountinterval?: number; + krbpwdlockoutduration?: number; + ipapwdmaxrepeat?: number; + ipapwdmaxsequence?: number; + ipapwddictcheck?: boolean; + ipapwdusercheck?: boolean; + ipapwddcredit?: number; + ipapwducredit?: number; + ipapwdlcredit?: number; + ipapwdocredit?: number; + passwordgracelimit?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type PwpolicyShowArgs = { + cn?: string; +}; + +export type PwpolicyShowOptions = { + rights: boolean; + user?: string; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/radiusproxy.ts b/src/services/requests/radiusproxy.ts new file mode 100644 index 000000000..a493c9667 --- /dev/null +++ b/src/services/requests/radiusproxy.ts @@ -0,0 +1,78 @@ +export type RadiusproxyAddArgs = { + cn: string; +}; + +export type RadiusproxyAddOptions = { + description?: string; + ipatokenradiusserver: string; + ipatokenradiussecret: string; + ipatokenradiustimeout?: number; + ipatokenradiusretries?: number; + ipatokenusermapattribute?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type RadiusproxyDelArgs = { + cn: string; +}; + +export type RadiusproxyDelOptions = { + continue: boolean; + version?: string; +}; + +export type RadiusproxyFindArgs = { + criteria?: string; +}; + +export type RadiusproxyFindOptions = { + cn?: string; + description?: string; + ipatokenradiusserver?: string; + ipatokenradiussecret?: string; + ipatokenradiustimeout?: number; + ipatokenradiusretries?: number; + ipatokenusermapattribute?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type RadiusproxyModArgs = { + cn: string; +}; + +export type RadiusproxyModOptions = { + description?: string; + ipatokenradiusserver?: string; + ipatokenradiussecret?: string; + ipatokenradiustimeout?: number; + ipatokenradiusretries?: number; + ipatokenusermapattribute?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + rename?: string; +}; + +export type RadiusproxyShowArgs = { + cn: string; +}; + +export type RadiusproxyShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/realmdomains.ts b/src/services/requests/realmdomains.ts new file mode 100644 index 000000000..aac9835a7 --- /dev/null +++ b/src/services/requests/realmdomains.ts @@ -0,0 +1,24 @@ +export type RealmdomainsModArgs = null; + +export type RealmdomainsModOptions = { + associateddomain?: string; + add_domain?: string; + del_domain?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + force: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type RealmdomainsShowArgs = null; + +export type RealmdomainsShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/role.ts b/src/services/requests/role.ts new file mode 100644 index 000000000..8210ff3db --- /dev/null +++ b/src/services/requests/role.ts @@ -0,0 +1,127 @@ +export type RoleAddArgs = { + cn: string; +}; + +export type RoleAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type RoleAddMemberArgs = { + cn: string; +}; + +export type RoleAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; + service?: string; + idoverrideuser?: string; + sysaccount?: string; +}; + +export type RoleAddPrivilegeArgs = { + cn: string; +}; + +export type RoleAddPrivilegeOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + privilege?: string; +}; + +export type RoleDelArgs = { + cn: string; +}; + +export type RoleDelOptions = { + continue: boolean; + version?: string; +}; + +export type RoleFindArgs = { + criteria?: string; +}; + +export type RoleFindOptions = { + cn?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type RoleModArgs = { + cn: string; +}; + +export type RoleModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type RoleRemoveMemberArgs = { + cn: string; +}; + +export type RoleRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; + service?: string; + idoverrideuser?: string; + sysaccount?: string; +}; + +export type RoleRemovePrivilegeArgs = { + cn: string; +}; + +export type RoleRemovePrivilegeOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + privilege?: string; +}; + +export type RoleShowArgs = { + cn: string; +}; + +export type RoleShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/selfservice.ts b/src/services/requests/selfservice.ts new file mode 100644 index 000000000..c8c366dd4 --- /dev/null +++ b/src/services/requests/selfservice.ts @@ -0,0 +1,55 @@ +export type SelfserviceAddArgs = { + aciname: string; +}; + +export type SelfserviceAddOptions = { + permissions?: string; + attrs: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type SelfserviceDelArgs = { + aciname: string; +}; + +export type SelfserviceDelOptions = { + version?: string; +}; + +export type SelfserviceFindArgs = { + criteria?: string; +}; + +export type SelfserviceFindOptions = { + aciname?: string; + permissions?: string; + attrs?: string; + pkey_only?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type SelfserviceModArgs = { + aciname: string; +}; + +export type SelfserviceModOptions = { + permissions?: string; + attrs?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type SelfserviceShowArgs = { + aciname: string; +}; + +export type SelfserviceShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/selinuxusermap.ts b/src/services/requests/selinuxusermap.ts new file mode 100644 index 000000000..450855523 --- /dev/null +++ b/src/services/requests/selinuxusermap.ts @@ -0,0 +1,149 @@ +export type SelinuxusermapAddArgs = { + cn: string; +}; + +export type SelinuxusermapAddOptions = { + ipaselinuxuser: string; + seealso?: string; + usercategory?: "all"; + hostcategory?: "all"; + description?: string; + ipaenabledflag?: boolean; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SelinuxusermapAddHostArgs = { + cn: string; +}; + +export type SelinuxusermapAddHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type SelinuxusermapAddUserArgs = { + cn: string; +}; + +export type SelinuxusermapAddUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type SelinuxusermapDelArgs = { + cn: string; +}; + +export type SelinuxusermapDelOptions = { + continue: boolean; + version?: string; +}; + +export type SelinuxusermapDisableArgs = { + cn: string; +}; + +export type SelinuxusermapDisableOptions = { + version?: string; +}; + +export type SelinuxusermapEnableArgs = { + cn: string; +}; + +export type SelinuxusermapEnableOptions = { + version?: string; +}; + +export type SelinuxusermapFindArgs = { + criteria?: string; +}; + +export type SelinuxusermapFindOptions = { + cn?: string; + ipaselinuxuser?: string; + seealso?: string; + usercategory?: "all"; + hostcategory?: "all"; + description?: string; + ipaenabledflag?: boolean; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type SelinuxusermapModArgs = { + cn: string; +}; + +export type SelinuxusermapModOptions = { + ipaselinuxuser?: string; + seealso?: string; + usercategory?: "all"; + hostcategory?: "all"; + description?: string; + ipaenabledflag?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SelinuxusermapRemoveHostArgs = { + cn: string; +}; + +export type SelinuxusermapRemoveHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; +}; + +export type SelinuxusermapRemoveUserArgs = { + cn: string; +}; + +export type SelinuxusermapRemoveUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type SelinuxusermapShowArgs = { + cn: string; +}; + +export type SelinuxusermapShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/server.ts b/src/services/requests/server.ts new file mode 100644 index 000000000..8c94d36ac --- /dev/null +++ b/src/services/requests/server.ts @@ -0,0 +1,111 @@ +import { DNSName } from "../types/primitives"; + +type ServerRoleStatus = "enabled" | "configured" | "hidden" | "absent"; + +export type ServerConncheckArgs = { + cn: string; + remote_cn: string; +}; + +export type ServerConncheckOptions = { + version?: string; +}; + +export type ServerDelArgs = { + cn: string; +}; + +export type ServerDelOptions = { + continue: boolean; + ignore_topology_disconnect?: boolean; + ignore_last_of_role?: boolean; + force?: boolean; + version?: string; +}; + +export type ServerFindArgs = { + criteria?: string; +}; + +export type ServerFindOptions = { + cn?: string; + ipamindomainlevel?: number; + ipamaxdomainlevel?: number; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + topologysuffix?: string; + no_topologysuffix?: string; + in_location?: DNSName; + not_in_location?: DNSName; + servrole?: string; +}; + +export type ServerModArgs = { + cn: string; +}; + +export type ServerModOptions = { + ipalocation_location?: DNSName; + ipaserviceweight?: number; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServerRoleFindArgs = { + criteria?: string; +}; + +export type ServerRoleFindOptions = { + server_server?: string; + role_servrole?: string; + status?: ServerRoleStatus; + timelimit?: number; + sizelimit?: number; + include_master: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type ServerRoleShowArgs = { + server_server: string; + role_servrole: string; +}; + +export type ServerRoleShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; + +export type ServerShowArgs = { + cn: string; +}; + +export type ServerShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServerStateArgs = { + cn: string; +}; + +export type ServerStateOptions = { + state: "enabled" | "hidden"; + version?: string; +}; diff --git a/src/services/requests/service.ts b/src/services/requests/service.ts new file mode 100644 index 000000000..f76f7319d --- /dev/null +++ b/src/services/requests/service.ts @@ -0,0 +1,299 @@ +import { Certificate, Principal } from "../types/primitives"; +import { IpaKrbAuthzData } from "./config"; +import { IpaKrbPrincipalAuthind } from "./host"; + +export type ServiceAddArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceAddOptions = { + usercertificate?: Certificate; + ipakrbauthzdata?: IpaKrbAuthzData; + krbprincipalauthind?: IpaKrbPrincipalAuthind; + ipakrbrequirespreauth?: boolean; + ipakrbokasdelegate?: boolean; + ipakrboktoauthasdelegate?: boolean; + setattr?: string; + addattr?: string; + force: boolean; + skip_host_check: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServiceAddCertArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceAddCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type ServiceAddDelegationArgs = { + krbcanonicalname: Principal; + memberprincipal: string; +}; + +export type ServiceAddDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServiceAddHostArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceAddHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; +}; + +export type ServiceAddPrincipalArgs = { + krbcanonicalname: Principal; + krbprincipalname: Principal; +}; + +export type ServiceAddPrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServiceAddSmbArgs = { + fqdn: string; + ipantflatname?: string; +}; + +export type ServiceAddSmbOptions = { + setattr?: string; + addattr?: string; + usercertificate?: Certificate; + ipakrbokasdelegate?: boolean; + ipakrboktoauthasdelegate?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServiceAllowAddDelegationArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceAllowAddDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type ServiceAllowCreateKeytabArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceAllowCreateKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type ServiceAllowRetrieveKeytabArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceAllowRetrieveKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type ServiceDelArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceDelOptions = { + continue: boolean; + version?: string; +}; + +export type ServiceDisableArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceDisableOptions = { + version?: string; +}; + +export type ServiceDisallowAddDelegationArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceDisallowAddDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type ServiceDisallowCreateKeytabArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceDisallowCreateKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type ServiceDisallowRetrieveKeytabArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceDisallowRetrieveKeytabOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + host?: string; + hostgroup?: string; +}; + +export type ServiceFindArgs = { + criteria?: string; +}; + +export type ServiceFindOptions = { + krbcanonicalname?: Principal; + krbprincipalname?: Principal; + ipakrbauthzdata?: IpaKrbAuthzData; + krbprincipalauthind?: IpaKrbPrincipalAuthind; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + man_by_host?: string; + not_man_by_host?: string; +}; + +export type ServiceModArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceModOptions = { + krbprincipalname?: Principal; + usercertificate?: Certificate; + ipakrbauthzdata?: IpaKrbAuthzData; + krbprincipalauthind?: IpaKrbPrincipalAuthind; + ipakrbrequirespreauth?: boolean; + ipakrbokasdelegate?: boolean; + ipakrboktoauthasdelegate?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServiceRemoveCertArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceRemoveCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type ServiceRemoveDelegationArgs = { + krbcanonicalname: Principal; + memberprincipal: string; +}; + +export type ServiceRemoveDelegationOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServiceRemoveHostArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceRemoveHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; +}; + +export type ServiceRemovePrincipalArgs = { + krbcanonicalname: Principal; + krbprincipalname: Principal; +}; + +export type ServiceRemovePrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServiceShowArgs = { + krbcanonicalname: Principal; +}; + +export type ServiceShowOptions = { + rights: boolean; + out?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/servicedelegationrule.ts b/src/services/requests/servicedelegationrule.ts new file mode 100644 index 000000000..42e48b314 --- /dev/null +++ b/src/services/requests/servicedelegationrule.ts @@ -0,0 +1,96 @@ +export type ServicedelegationruleAddArgs = { + cn: string; +}; + +export type ServicedelegationruleAddOptions = { + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type ServicedelegationruleAddMemberArgs = { + cn: string; +}; + +export type ServicedelegationruleAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + principal?: string; +}; + +export type ServicedelegationruleAddTargetArgs = { + cn: string; +}; + +export type ServicedelegationruleAddTargetOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + servicedelegationtarget?: string; +}; + +export type ServicedelegationruleDelArgs = { + cn: string; +}; + +export type ServicedelegationruleDelOptions = { + continue: boolean; + version?: string; +}; + +export type ServicedelegationruleFindArgs = { + criteria?: string; +}; + +export type ServicedelegationruleFindOptions = { + cn?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type ServicedelegationruleRemoveMemberArgs = { + cn: string; +}; + +export type ServicedelegationruleRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + principal?: string; +}; + +export type ServicedelegationruleRemoveTargetArgs = { + cn: string; +}; + +export type ServicedelegationruleRemoveTargetOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + servicedelegationtarget?: string; +}; + +export type ServicedelegationruleShowArgs = { + cn: string; +}; + +export type ServicedelegationruleShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/servicedelegationtarget.ts b/src/services/requests/servicedelegationtarget.ts new file mode 100644 index 000000000..2425b5fe4 --- /dev/null +++ b/src/services/requests/servicedelegationtarget.ts @@ -0,0 +1,67 @@ +export type ServicedelegationtargetAddArgs = { + cn: string; +}; + +export type ServicedelegationtargetAddOptions = { + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type ServicedelegationtargetAddMemberArgs = { + cn: string; +}; + +export type ServicedelegationtargetAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + principal?: string; +}; + +export type ServicedelegationtargetDelArgs = { + cn: string; +}; + +export type ServicedelegationtargetDelOptions = { + continue: boolean; + version?: string; +}; + +export type ServicedelegationtargetFindArgs = { + criteria?: string; +}; + +export type ServicedelegationtargetFindOptions = { + cn?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type ServicedelegationtargetRemoveMemberArgs = { + cn: string; +}; + +export type ServicedelegationtargetRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + principal?: string; +}; + +export type ServicedelegationtargetShowArgs = { + cn: string; +}; + +export type ServicedelegationtargetShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/stageuser.ts b/src/services/requests/stageuser.ts new file mode 100644 index 000000000..6c6831751 --- /dev/null +++ b/src/services/requests/stageuser.ts @@ -0,0 +1,344 @@ +import { Principal, DateTime, DN, Certificate } from "../types/primitives"; +import { IpaUserAuthType } from "./config"; +import { IpaNtHomeDirectoryDrive } from "./user"; + +export type StageuserActivateArgs = { + uid: string; +}; + +export type StageuserActivateOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserAddArgs = { + uid: string; +}; + +export type StageuserAddOptions = { + givenname: string; + sn: string; + cn: string; + displayname?: string; + initials?: string; + homedirectory?: string; + gecos?: string; + loginshell?: string; + krbprincipalname?: Principal; + krbprincipalexpiration?: DateTime; + krbpasswordexpiration?: DateTime; + mail?: string; + userpassword?: string; + random?: boolean; + uidnumber?: number; + gidnumber?: number; + street?: string; + l?: string; + st?: string; + postalcode?: string; + telephonenumber?: string; + mobile?: string; + pager?: string; + facsimiletelephonenumber?: string; + ou?: string; + title?: string; + manager?: string; + carlicense?: string; + ipasshpubkey?: string; + ipauserauthtype?: IpaUserAuthType; + userclass?: string; + ipatokenradiusconfiglink?: string; + ipatokenradiususername?: string; + ipaidpconfiglink?: string; + ipaidpsub?: string; + departmentnumber?: string; + employeenumber?: string; + employeetype?: string; + preferredlanguage?: string; + usercertificate?: Certificate; + setattr?: string; + addattr?: string; + from_delete?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserAddCertArgs = { + uid: string; +}; + +export type StageuserAddCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type StageuserAddCertmapdataArgs = { + uid: string; + ipacertmapdata?: string; +}; + +export type StageuserAddCertmapdataOptions = { + issuer?: DN; + subject?: DN; + certificate?: Certificate; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserAddManagerArgs = { + uid: string; +}; + +export type StageuserAddManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; +}; + +export type StageuserAddPasskeyArgs = { + uid: string; + ipapasskey: string; +}; + +export type StageuserAddPasskeyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserAddPrincipalArgs = { + uid: string; + krbprincipalname: Principal; +}; + +export type StageuserAddPrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserDelArgs = { + uid: string; +}; + +export type StageuserDelOptions = { + continue: boolean; + version?: string; +}; + +export type StageuserFindArgs = { + criteria?: string; +}; + +export type StageuserFindOptions = { + uid?: string; + givenname?: string; + sn?: string; + cn?: string; + displayname?: string; + initials?: string; + homedirectory?: string; + gecos?: string; + loginshell?: string; + krbprincipalname?: Principal; + krbprincipalexpiration?: DateTime; + krbpasswordexpiration?: DateTime; + mail?: string; + userpassword?: string; + uidnumber?: number; + gidnumber?: number; + street?: string; + l?: string; + st?: string; + postalcode?: string; + telephonenumber?: string; + mobile?: string; + pager?: string; + facsimiletelephonenumber?: string; + ou?: string; + title?: string; + manager?: string; + carlicense?: string; + ipauserauthtype?: IpaUserAuthType; + userclass?: string; + ipatokenradiusconfiglink?: string; + ipatokenradiususername?: string; + ipaidpconfiglink?: string; + ipaidpsub?: string; + departmentnumber?: string; + employeenumber?: string; + employeetype?: string; + preferredlanguage?: string; + usercertificate?: Certificate; + ipantlogonscript?: string; + ipantprofilepath?: string; + ipanthomedirectory?: string; + ipanthomedirectorydrive?: IpaNtHomeDirectoryDrive; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + in_group?: string; + not_in_group?: string; + in_netgroup?: string; + not_in_netgroup?: string; + in_role?: string; + not_in_role?: string; + in_hbacrule?: string; + not_in_hbacrule?: string; + in_sudorule?: string; + not_in_sudorule?: string; + in_subid?: string; + not_in_subid?: string; +}; + +export type StageuserModArgs = { + uid: string; +}; + +export type StageuserModOptions = { + givenname?: string; + sn?: string; + cn?: string; + displayname?: string; + initials?: string; + homedirectory?: string; + gecos?: string; + loginshell?: string; + krbprincipalname?: Principal; + krbprincipalexpiration?: DateTime; + krbpasswordexpiration?: DateTime; + mail?: string; + userpassword?: string; + random?: boolean; + uidnumber?: number; + gidnumber?: number; + street?: string; + l?: string; + st?: string; + postalcode?: string; + telephonenumber?: string; + mobile?: string; + pager?: string; + facsimiletelephonenumber?: string; + ou?: string; + title?: string; + manager?: string; + carlicense?: string; + ipasshpubkey?: string; + ipauserauthtype?: IpaUserAuthType; + userclass?: string; + ipatokenradiusconfiglink?: string; + ipatokenradiususername?: string; + ipaidpconfiglink?: string; + ipaidpsub?: string; + departmentnumber?: string; + employeenumber?: string; + employeetype?: string; + preferredlanguage?: string; + usercertificate?: Certificate; + ipantlogonscript?: string; + ipantprofilepath?: string; + ipanthomedirectory?: string; + ipanthomedirectorydrive?: IpaNtHomeDirectoryDrive; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type StageuserRemoveCertArgs = { + uid: string; +}; + +export type StageuserRemoveCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type StageuserRemoveCertmapdataArgs = { + uid: string; + ipacertmapdata?: string; +}; + +export type StageuserRemoveCertmapdataOptions = { + issuer?: DN; + subject?: DN; + certificate?: Certificate; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserRemoveManagerArgs = { + uid: string; +}; + +export type StageuserRemoveManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; +}; + +export type StageuserRemovePasskeyArgs = { + uid: string; + ipapasskey: string; +}; + +export type StageuserRemovePasskeyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserRemovePrincipalArgs = { + uid: string; + krbprincipalname: Principal; +}; + +export type StageuserRemovePrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type StageuserShowArgs = { + uid: string; +}; + +export type StageuserShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/subid.ts b/src/services/requests/subid.ts new file mode 100644 index 000000000..7b7dca09e --- /dev/null +++ b/src/services/requests/subid.ts @@ -0,0 +1,98 @@ +export type SubidAddArgs = { + ipauniqueid?: string; +}; + +export type SubidAddOptions = { + description?: string; + ipaowner: string; + ipasubuidnumber?: number; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type SubidDelArgs = { + ipauniqueid: string; +}; + +export type SubidDelOptions = { + continue: boolean; + version?: string; +}; + +export type SubidFindArgs = { + criteria?: string; +}; + +export type SubidFindOptions = { + ipauniqueid?: string; + description?: string; + ipaowner?: string; + ipasubuidnumber?: number; + ipasubgidnumber?: number; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type SubidGenerateArgs = null; + +export type SubidGenerateOptions = { + ipaowner?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type SubidMatchArgs = { + criteria?: string; +}; + +export type SubidMatchOptions = { + ipasubuidnumber: number; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type SubidModArgs = { + ipauniqueid: string; +}; + +export type SubidModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type SubidShowArgs = { + ipauniqueid: string; +}; + +export type SubidShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type SubidStatsArgs = null; + +export type SubidStatsOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/sudocmd.ts b/src/services/requests/sudocmd.ts new file mode 100644 index 000000000..a28ffdad1 --- /dev/null +++ b/src/services/requests/sudocmd.ts @@ -0,0 +1,66 @@ +export type SudocmdAddArgs = { + sudocmd: string; +}; + +export type SudocmdAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SudocmdDelArgs = { + sudocmd: string; +}; + +export type SudocmdDelOptions = { + continue: boolean; + version?: string; +}; + +export type SudocmdFindArgs = { + criteria?: string; +}; + +export type SudocmdFindOptions = { + sudocmd?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type SudocmdModArgs = { + sudocmd: string; +}; + +export type SudocmdModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SudocmdShowArgs = { + sudocmd: string; +}; + +export type SudocmdShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/sudocmdgroup.ts b/src/services/requests/sudocmdgroup.ts new file mode 100644 index 000000000..0ba210455 --- /dev/null +++ b/src/services/requests/sudocmdgroup.ts @@ -0,0 +1,90 @@ +export type SudocmdgroupAddArgs = { + cn: string; +}; + +export type SudocmdgroupAddOptions = { + description?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SudocmdgroupAddMemberArgs = { + cn: string; +}; + +export type SudocmdgroupAddMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + sudocmd?: string; +}; + +export type SudocmdgroupDelArgs = { + cn: string; +}; + +export type SudocmdgroupDelOptions = { + continue: boolean; + version?: string; +}; + +export type SudocmdgroupFindArgs = { + criteria?: string; +}; + +export type SudocmdgroupFindOptions = { + cn?: string; + description?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type SudocmdgroupModArgs = { + cn: string; +}; + +export type SudocmdgroupModOptions = { + description?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SudocmdgroupRemoveMemberArgs = { + cn: string; +}; + +export type SudocmdgroupRemoveMemberOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + sudocmd?: string; +}; + +export type SudocmdgroupShowArgs = { + cn: string; +}; + +export type SudocmdgroupShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/sudorule.ts b/src/services/requests/sudorule.ts new file mode 100644 index 000000000..b32c47079 --- /dev/null +++ b/src/services/requests/sudorule.ts @@ -0,0 +1,296 @@ +export type SudoruleAddArgs = { + cn: string; +}; + +export type SudoruleAddOptions = { + description?: string; + ipaenabledflag?: boolean; + usercategory?: "all"; + hostcategory?: "all"; + cmdcategory?: "all"; + ipasudorunasusercategory?: "all"; + ipasudorunasgroupcategory?: "all"; + sudoorder?: number; + externaluser?: string; + externalhost?: string; + ipasudorunasextuser?: string; + ipasudorunasextgroup?: string; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SudoruleAddAllowCommandArgs = { + cn: string; +}; + +export type SudoruleAddAllowCommandOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + sudocmd?: string; + sudocmdgroup?: string; +}; + +export type SudoruleAddDenyCommandArgs = { + cn: string; +}; + +export type SudoruleAddDenyCommandOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + sudocmd?: string; + sudocmdgroup?: string; +}; + +export type SudoruleAddHostArgs = { + cn: string; +}; + +export type SudoruleAddHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; + hostmask?: string; +}; + +export type SudoruleAddOptionArgs = { + cn: string; +}; + +export type SudoruleAddOptionOptions = { + ipasudoopt: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SudoruleAddRunasgroupArgs = { + cn: string; +}; + +export type SudoruleAddRunasgroupOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + group?: string; +}; + +export type SudoruleAddRunasuserArgs = { + cn: string; +}; + +export type SudoruleAddRunasuserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type SudoruleAddUserArgs = { + cn: string; +}; + +export type SudoruleAddUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type SudoruleDelArgs = { + cn: string; +}; + +export type SudoruleDelOptions = { + continue: boolean; + version?: string; +}; + +export type SudoruleDisableArgs = { + cn: string; +}; + +export type SudoruleDisableOptions = { + version?: string; +}; + +export type SudoruleEnableArgs = { + cn: string; +}; + +export type SudoruleEnableOptions = { + version?: string; +}; + +export type SudoruleFindArgs = { + criteria?: string; +}; + +export type SudoruleFindOptions = { + cn?: string; + description?: string; + ipaenabledflag?: boolean; + usercategory?: "all"; + hostcategory?: "all"; + cmdcategory?: "all"; + ipasudorunasusercategory?: "all"; + ipasudorunasgroupcategory?: "all"; + sudoorder?: number; + externaluser?: string; + externalhost?: string; + ipasudorunasextuser?: string; + ipasudorunasextgroup?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type SudoruleModArgs = { + cn: string; +}; + +export type SudoruleModOptions = { + description?: string; + ipaenabledflag?: boolean; + usercategory?: "all"; + hostcategory?: "all"; + cmdcategory?: "all"; + ipasudorunasusercategory?: "all"; + ipasudorunasgroupcategory?: "all"; + sudoorder?: number; + externaluser?: string; + externalhost?: string; + ipasudorunasextuser?: string; + ipasudorunasextgroup?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type SudoruleRemoveAllowCommandArgs = { + cn: string; +}; + +export type SudoruleRemoveAllowCommandOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + sudocmd?: string; + sudocmdgroup?: string; +}; + +export type SudoruleRemoveDenyCommandArgs = { + cn: string; +}; + +export type SudoruleRemoveDenyCommandOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + sudocmd?: string; + sudocmdgroup?: string; +}; + +export type SudoruleRemoveHostArgs = { + cn: string; +}; + +export type SudoruleRemoveHostOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + host?: string; + hostgroup?: string; + hostmask?: string; +}; + +export type SudoruleRemoveOptionArgs = { + cn: string; +}; + +export type SudoruleRemoveOptionOptions = { + ipasudoopt: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SudoruleRemoveRunasgroupArgs = { + cn: string; +}; + +export type SudoruleRemoveRunasgroupOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + group?: string; +}; + +export type SudoruleRemoveRunasuserArgs = { + cn: string; +}; + +export type SudoruleRemoveRunasuserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type SudoruleRemoveUserArgs = { + cn: string; +}; + +export type SudoruleRemoveUserOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; +}; + +export type SudoruleShowArgs = { + cn: string; +}; + +export type SudoruleShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/sysaccount.ts b/src/services/requests/sysaccount.ts new file mode 100644 index 000000000..b4dd4bb81 --- /dev/null +++ b/src/services/requests/sysaccount.ts @@ -0,0 +1,104 @@ +export type SysaccountAddArgs = { + uid: string; +}; + +export type SysaccountAddOptions = { + description?: string; + userpassword?: string; + random?: boolean; + nsaccountlock?: boolean; + setattr?: string; + addattr?: string; + privileged?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SysaccountDelArgs = { + uid: string; +}; + +export type SysaccountDelOptions = { + continue: boolean; + version?: string; +}; + +export type SysaccountDisableArgs = { + uid: string; +}; + +export type SysaccountDisableOptions = { + version?: string; +}; + +export type SysaccountEnableArgs = { + uid: string; +}; + +export type SysaccountEnableOptions = { + version?: string; +}; + +export type SysaccountFindArgs = { + criteria?: string; +}; + +export type SysaccountFindOptions = { + uid?: string; + description?: string; + nsaccountlock?: boolean; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type SysaccountModArgs = { + uid: string; +}; + +export type SysaccountModOptions = { + description?: string; + userpassword?: string; + random?: boolean; + nsaccountlock?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + privileged?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SysaccountPolicyArgs = { + uid: string; +}; + +export type SysaccountPolicyOptions = { + rights: boolean; + privileged?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type SysaccountShowArgs = { + uid: string; +}; + +export type SysaccountShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/topic.ts b/src/services/requests/topic.ts new file mode 100644 index 000000000..87d84894c --- /dev/null +++ b/src/services/requests/topic.ts @@ -0,0 +1,20 @@ +export type TopicFindArgs = { + criteria?: string; +}; + +export type TopicFindOptions = { + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type TopicShowArgs = { + full_name: string; +}; + +export type TopicShowOptions = { + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/topologysegment.ts b/src/services/requests/topologysegment.ts new file mode 100644 index 000000000..7920a0418 --- /dev/null +++ b/src/services/requests/topologysegment.ts @@ -0,0 +1,99 @@ +export type IpaReplTopoSegmentDirection = "both" | "left-right" | "right-left"; + +export type TopologysegmentAddArgs = { + topologysuffixcn: string; + cn: string; +}; + +export type TopologysegmentAddOptions = { + iparepltoposegmentleftnode: string; + iparepltoposegmentrightnode: string; + iparepltoposegmentdirection: IpaReplTopoSegmentDirection; + nsds5replicastripattrs?: string; + nsds5replicatedattributelist?: string; + nsds5replicatedattributelisttotal?: string; + nsds5replicatimeout?: number; + nsds5replicaenabled?: "on" | "off"; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TopologysegmentDelArgs = { + topologysuffixcn: string; + cn: string; +}; + +export type TopologysegmentDelOptions = { + continue: boolean; + version?: string; +}; + +export type TopologysegmentFindArgs = { + topologysuffixcn: string; + criteria?: string; +}; + +export type TopologysegmentFindOptions = { + cn?: string; + iparepltoposegmentleftnode?: string; + iparepltoposegmentrightnode?: string; + iparepltoposegmentdirection?: IpaReplTopoSegmentDirection; + nsds5replicastripattrs?: string; + nsds5replicatedattributelist?: string; + nsds5replicatedattributelisttotal?: string; + nsds5replicatimeout?: number; + nsds5replicaenabled?: "on" | "off"; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type TopologysegmentModArgs = { + topologysuffixcn: string; + cn: string; +}; + +export type TopologysegmentModOptions = { + nsds5replicastripattrs?: string; + nsds5replicatedattributelist?: string; + nsds5replicatedattributelisttotal?: string; + nsds5replicatimeout?: number; + nsds5replicaenabled?: "on" | "off"; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TopologysegmentReinitializeArgs = { + topologysuffixcn: string; + cn: string; +}; + +export type TopologysegmentReinitializeOptions = { + left?: boolean; + right?: boolean; + stop?: boolean; + version?: string; +}; + +export type TopologysegmentShowArgs = { + topologysuffixcn: string; + cn: string; +}; + +export type TopologysegmentShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/topologysuffix.ts b/src/services/requests/topologysuffix.ts new file mode 100644 index 000000000..05faf838d --- /dev/null +++ b/src/services/requests/topologysuffix.ts @@ -0,0 +1,72 @@ +import { DN } from "../types/primitives"; + +export type TopologysuffixAddArgs = { + cn: string; +}; + +export type TopologysuffixAddOptions = { + iparepltopoconfroot: DN; + setattr?: string; + addattr?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TopologysuffixDelArgs = { + cn: string; +}; + +export type TopologysuffixDelOptions = { + continue: boolean; + version?: string; +}; + +export type TopologysuffixFindArgs = { + criteria?: string; +}; + +export type TopologysuffixFindOptions = { + cn?: string; + iparepltopoconfroot?: DN; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type TopologysuffixModArgs = { + cn: string; +}; + +export type TopologysuffixModOptions = { + iparepltopoconfroot?: DN; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TopologysuffixShowArgs = { + cn: string; +}; + +export type TopologysuffixShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TopologysuffixVerifyArgs = { + cn: string; +}; + +export type TopologysuffixVerifyOptions = { + version?: string; +}; diff --git a/src/services/requests/trust.ts b/src/services/requests/trust.ts new file mode 100644 index 000000000..4d4b45bc1 --- /dev/null +++ b/src/services/requests/trust.ts @@ -0,0 +1,108 @@ +export type TrustAddArgs = { + cn: string; +}; + +export type TrustAddOptions = { + setattr?: string; + addattr?: string; + trust_type: "ad"; + realm_admin?: string; + realm_passwd?: string; + realm_server?: string; + trust_secret?: string; + base_id?: number; + range_size?: number; + range_type?: "ipa-ad-trust" | "ipa-ad-trust-posix"; + bidirectional?: boolean; + external?: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TrustDelArgs = { + cn: string; +}; + +export type TrustDelOptions = { + continue: boolean; + version?: string; +}; + +export type TrustEnableAgentArgs = { + remote_cn: string; +}; + +export type TrustEnableAgentOptions = { + enable_compat: boolean; + version?: string; +}; + +export type TrustFetchDomainsArgs = { + cn: string; +}; + +export type TrustFetchDomainsOptions = { + rights: boolean; + realm_admin?: string; + realm_passwd?: string; + realm_server?: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TrustFindArgs = { + criteria?: string; +}; + +export type TrustFindOptions = { + cn?: string; + ipantflatname?: string; + ipanttrusteddomainsid?: string; + ipantsidblacklistincoming?: string; + ipantsidblacklistoutgoing?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type TrustModArgs = { + cn: string; +}; + +export type TrustModOptions = { + ipantsidblacklistincoming?: string; + ipantsidblacklistoutgoing?: string; + ipantadditionalsuffixes?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TrustResolveArgs = null; + +export type TrustResolveOptions = { + sids: string; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TrustShowArgs = { + cn: string; +}; + +export type TrustShowOptions = { + rights: boolean; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/trustconfig.ts b/src/services/requests/trustconfig.ts new file mode 100644 index 000000000..7721bc013 --- /dev/null +++ b/src/services/requests/trustconfig.ts @@ -0,0 +1,23 @@ +export type TrustconfigModArgs = null; + +export type TrustconfigModOptions = { + ipantfallbackprimarygroup?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + trust_type: "ad"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TrustconfigShowArgs = null; + +export type TrustconfigShowOptions = { + rights: boolean; + trust_type: "ad"; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/trustdomain.ts b/src/services/requests/trustdomain.ts new file mode 100644 index 000000000..60062e58e --- /dev/null +++ b/src/services/requests/trustdomain.ts @@ -0,0 +1,78 @@ +export type TrustdomainAddArgs = { + trustcn: string; + cn: string; +}; + +export type TrustdomainAddOptions = { + ipantflatname?: string; + ipanttrusteddomainsid?: string; + setattr?: string; + addattr?: string; + trust_type: "ad"; + all: boolean; + raw: boolean; + version?: string; +}; + +export type TrustdomainDelArgs = { + trustcn: string; + cn: string; +}; + +export type TrustdomainDelOptions = { + continue: boolean; + version?: string; +}; + +export type TrustdomainDisableArgs = { + trustcn: string; + cn: string; +}; + +export type TrustdomainDisableOptions = { + version?: string; +}; + +export type TrustdomainEnableArgs = { + trustcn: string; + cn: string; +}; + +export type TrustdomainEnableOptions = { + version?: string; +}; + +export type TrustdomainFindArgs = { + trustcn: string; + criteria?: string; +}; + +export type TrustdomainFindOptions = { + cn?: string; + ipantflatname?: string; + ipanttrusteddomainsid?: string; + timelimit?: number; + sizelimit?: number; + all: boolean; + raw: boolean; + version?: string; + pkey_only?: boolean; +}; + +export type TrustdomainModArgs = { + trustcn: string; + cn: string; +}; + +export type TrustdomainModOptions = { + ipantflatname?: string; + ipanttrusteddomainsid?: string; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + trust_type: "ad"; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/user.ts b/src/services/requests/user.ts new file mode 100644 index 000000000..a5ad4fc03 --- /dev/null +++ b/src/services/requests/user.ts @@ -0,0 +1,418 @@ +import { Certificate, Principal, DateTime, DN } from "../types/primitives"; +import { IpaUserAuthType } from "./config"; + +export type IpaNtHomeDirectoryDrive = + | "A:" + | "B:" + | "C:" + | "D:" + | "E:" + | "F:" + | "G:" + | "H:" + | "I:" + | "J:" + | "K:" + | "L:" + | "M:" + | "N:" + | "O:" + | "P:" + | "Q:" + | "R:" + | "S:" + | "T:" + | "U:" + | "V:" + | "W:" + | "X:" + | "Y:" + | "Z:"; + +export type UserAddArgs = { + uid: string; +}; + +export type UserAddOptions = { + givenname: string; + sn: string; + cn: string; + displayname?: string; + initials?: string; + homedirectory?: string; + gecos?: string; + loginshell?: string; + krbprincipalname?: Principal; + krbprincipalexpiration?: DateTime; + krbpasswordexpiration?: DateTime; + mail?: string; + userpassword?: string; + random?: boolean; + uidnumber?: number; + gidnumber?: number; + street?: string; + l?: string; + st?: string; + postalcode?: string; + telephonenumber?: string; + mobile?: string; + pager?: string; + facsimiletelephonenumber?: string; + ou?: string; + title?: string; + manager?: string; + carlicense?: string; + ipasshpubkey?: string; + ipauserauthtype?: IpaUserAuthType; + userclass?: string; + ipatokenradiusconfiglink?: string; + ipatokenradiususername?: string; + ipaidpconfiglink?: string; + ipaidpsub?: string; + departmentnumber?: string; + employeenumber?: string; + employeetype?: string; + preferredlanguage?: string; + usercertificate?: Certificate; + nsaccountlock?: boolean; + setattr?: string; + addattr?: string; + noprivate: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserAddCertArgs = { + uid: string; +}; + +export type UserAddCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type UserAddCertmapdataArgs = { + uid: string; + ipacertmapdata?: string; +}; + +export type UserAddCertmapdataOptions = { + issuer?: DN; + subject?: DN; + certificate?: Certificate; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserAddManagerArgs = { + uid: string; +}; + +export type UserAddManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; +}; + +export type UserAddPasskeyArgs = { + uid: string; + ipapasskey: string; +}; + +export type UserAddPasskeyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserAddPrincipalArgs = { + uid: string; + krbprincipalname: Principal; +}; + +export type UserAddPrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserDelArgs = { + uid: string; +}; + +export type UserDelOptions = { + continue: boolean; + preserve?: boolean; + version?: string; +}; + +export type UserDisableArgs = { + uid: string; +}; + +export type UserDisableOptions = { + version?: string; +}; + +export type UserEnableArgs = { + uid: string; +}; + +export type UserEnableOptions = { + version?: string; +}; + +export type UserFindArgs = { + criteria?: string; +}; + +export type UserFindOptions = { + uid?: string; + givenname?: string; + sn?: string; + cn?: string; + displayname?: string; + initials?: string; + homedirectory?: string; + gecos?: string; + loginshell?: string; + krbprincipalname?: Principal; + krbprincipalexpiration?: DateTime; + krbpasswordexpiration?: DateTime; + mail?: string; + userpassword?: string; + uidnumber?: number; + gidnumber?: number; + street?: string; + l?: string; + st?: string; + postalcode?: string; + telephonenumber?: string; + mobile?: string; + pager?: string; + facsimiletelephonenumber?: string; + ou?: string; + title?: string; + manager?: string; + carlicense?: string; + ipauserauthtype?: IpaUserAuthType; + userclass?: string; + ipatokenradiusconfiglink?: string; + ipatokenradiususername?: string; + ipaidpconfiglink?: string; + ipaidpsub?: string; + departmentnumber?: string; + employeenumber?: string; + employeetype?: string; + preferredlanguage?: string; + usercertificate?: Certificate; + ipantlogonscript?: string; + ipantprofilepath?: string; + ipanthomedirectory?: string; + ipanthomedirectorydrive?: IpaNtHomeDirectoryDrive; + nsaccountlock?: boolean; + preserved?: boolean; + timelimit?: number; + sizelimit?: number; + whoami: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; + in_group?: string; + not_in_group?: string; + in_netgroup?: string; + not_in_netgroup?: string; + in_role?: string; + not_in_role?: string; + in_hbacrule?: string; + not_in_hbacrule?: string; + in_sudorule?: string; + not_in_sudorule?: string; + in_subid?: string; + not_in_subid?: string; +}; + +export type UserModArgs = { + uid: string; +}; + +export type UserModOptions = { + givenname?: string; + sn?: string; + cn?: string; + displayname?: string; + initials?: string; + homedirectory?: string; + gecos?: string; + loginshell?: string; + krbprincipalname?: Principal; + krbprincipalexpiration?: DateTime; + krbpasswordexpiration?: DateTime; + mail?: string; + userpassword?: string; + random?: boolean; + uidnumber?: number; + gidnumber?: number; + street?: string; + l?: string; + st?: string; + postalcode?: string; + telephonenumber?: string; + mobile?: string; + pager?: string; + facsimiletelephonenumber?: string; + ou?: string; + title?: string; + manager?: string; + carlicense?: string; + ipasshpubkey?: string; + ipauserauthtype?: IpaUserAuthType; + userclass?: string; + ipatokenradiusconfiglink?: string; + ipatokenradiususername?: string; + ipaidpconfiglink?: string; + ipaidpsub?: string; + departmentnumber?: string; + employeenumber?: string; + employeetype?: string; + preferredlanguage?: string; + usercertificate?: Certificate; + ipantlogonscript?: string; + ipantprofilepath?: string; + ipanthomedirectory?: string; + ipanthomedirectorydrive?: IpaNtHomeDirectoryDrive; + nsaccountlock?: boolean; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + rename?: string; +}; + +export type UserRemoveCertArgs = { + uid: string; +}; + +export type UserRemoveCertOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + usercertificate: Certificate; +}; + +export type UserRemoveCertmapdataArgs = { + uid: string; + ipacertmapdata?: string; +}; + +export type UserRemoveCertmapdataOptions = { + issuer?: DN; + subject?: DN; + certificate?: Certificate; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserRemoveManagerArgs = { + uid: string; +}; + +export type UserRemoveManagerOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; +}; + +export type UserRemovePasskeyArgs = { + uid: string; + ipapasskey: string; +}; + +export type UserRemovePasskeyOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserRemovePrincipalArgs = { + uid: string; + krbprincipalname: Principal; +}; + +export type UserRemovePrincipalOptions = { + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserShowArgs = { + uid: string; +}; + +export type UserShowOptions = { + rights: boolean; + out?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type UserStageArgs = { + uid: string; +}; + +export type UserStageOptions = { + continue: boolean; + version?: string; +}; + +export type UserStatusArgs = { + useruid: string; +}; + +export type UserStatusOptions = { + all: boolean; + raw: boolean; + version?: string; +}; + +export type UserUndelArgs = { + uid: string; +}; + +export type UserUndelOptions = { + version?: string; +}; + +export type UserUnlockArgs = { + uid: string; +}; + +export type UserUnlockOptions = { + version?: string; +}; diff --git a/src/services/requests/utils.ts b/src/services/requests/utils.ts new file mode 100644 index 000000000..3bbb6d135 --- /dev/null +++ b/src/services/requests/utils.ts @@ -0,0 +1,174 @@ +import { DN, Principal } from "../types/primitives"; + +export type AdtrustIsEnabledArgs = null; + +export type AdtrustIsEnabledOptions = { + version?: string; +}; + +export type BatchArgs = { + methods?: Record; +}; + +export type BatchOptions = { + keeponly?: string; + version?: string; +}; + +export type CompatIsEnabledArgs = null; + +export type CompatIsEnabledOptions = { + version?: string; +}; + +export type DomainlevelGetArgs = null; + +export type DomainlevelGetOptions = { + version?: string; +}; + +export type DomainlevelSetArgs = { + ipadomainlevel: number; +}; + +export type DomainlevelSetOptions = { + version?: string; +}; + +export type EnvArgs = { + variables?: string[]; +}; + +export type EnvOptions = { + server?: boolean; + all: boolean; + version?: string; +}; + +export type HbactestArgs = null; + +export type HbactestOptions = { + user: string; + sourcehost?: string; + targethost: string; + service: string; + rules?: string; + nodetail?: boolean; + enabled?: boolean; + disabled?: boolean; + sizelimit?: number; + version?: string; +}; + +export type I18nMessagesArgs = null; + +export type I18nMessagesOptions = { + version?: string; +}; + +export type JoinArgs = { + cn: string; +}; + +export type JoinOptions = { + realm: string; + nshardwareplatform?: string; + nsosversion?: string; + version?: string; +}; + +export type JsonMetadataArgs = { + objname?: string; + methodname?: string; +}; + +export type JsonMetadataOptions = { + object?: string; + method?: string; + command?: string; + version?: string; +}; + +export type KraIsEnabledArgs = null; + +export type KraIsEnabledOptions = { + version?: string; +}; + +export type MigrateDsArgs = { + ldapuri: string; + bindpw: string; +}; + +export type MigrateDsOptions = { + binddn?: DN; + usercontainer: DN; + groupcontainer: DN; + userobjectclass: string; + groupobjectclass: string; + userignoreobjectclass?: string; + userignoreattribute?: string; + groupignoreobjectclass?: string; + groupignoreattribute?: string; + groupoverwritegid: boolean; + schema?: "RFC2307bis" | "RFC2307"; + continue?: boolean; + basedn?: DN; + compat?: boolean; + cacertfile?: string; + use_def_group?: boolean; + scope: "base" | "onelevel" | "subtree"; + version?: string; + exclude_users?: string; + exclude_groups?: string; +}; + +export type PasswdArgs = { + principal: Principal; + password: string; + current_password: string; +}; + +export type PasswdOptions = { + otp?: string; + version?: string; +}; + +export type PingArgs = null; + +export type PingOptions = { + version?: string; +}; + +export type PluginsArgs = null; + +export type PluginsOptions = { + server?: boolean; + all: boolean; + version?: string; +}; + +export type SchemaArgs = null; + +export type SchemaOptions = { + known_fingerprints?: string; + version?: string; +}; + +export type SessionLogoutArgs = null; + +export type SessionLogoutOptions = { + version?: string; +}; + +export type SidgenWasRunArgs = null; + +export type SidgenWasRunOptions = { + version?: string; +}; + +export type WhoamiArgs = null; + +export type WhoamiOptions = { + version?: string; +}; diff --git a/src/services/requests/vault.ts b/src/services/requests/vault.ts new file mode 100644 index 000000000..e6e4ddd29 --- /dev/null +++ b/src/services/requests/vault.ts @@ -0,0 +1,195 @@ +import { Bytes, Principal } from "../types/primitives"; + +type IpaVaultType = "standard" | "symmetric" | "asymmetric"; +type IpaWrappingAlgo = "aes-128-cbc" | "des-ede3-cbc"; + +export type VaultAddInternalArgs = { + cn: string; +}; + +export type VaultAddInternalOptions = { + description?: string; + ipavaulttype?: IpaVaultType; + ipavaultsalt?: Bytes; + ipavaultpublickey?: Bytes; + setattr?: string; + addattr?: string; + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type VaultAddMemberArgs = { + cn: string; +}; + +export type VaultAddMemberOptions = { + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + services?: string; +}; + +export type VaultAddOwnerArgs = { + cn: string; +}; + +export type VaultAddOwnerOptions = { + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + services?: string; +}; + +export type VaultArchiveInternalArgs = { + cn: string; +}; + +export type VaultArchiveInternalOptions = { + service?: Principal; + shared?: boolean; + username?: string; + session_key: Bytes; + vault_data: Bytes; + nonce: Bytes; + wrapping_algo?: IpaWrappingAlgo; + all: boolean; + raw: boolean; + version?: string; +}; + +export type VaultDelArgs = { + cn: string; +}; + +export type VaultDelOptions = { + continue: boolean; + service?: Principal; + shared?: boolean; + username?: string; + version?: string; +}; + +export type VaultFindArgs = { + criteria?: string; +}; + +export type VaultFindOptions = { + cn?: string; + description?: string; + ipavaulttype?: IpaVaultType; + timelimit?: number; + sizelimit?: number; + service?: Principal; + shared?: boolean; + username?: string; + services?: boolean; + users?: boolean; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + pkey_only?: boolean; +}; + +export type VaultModInternalArgs = { + cn: string; +}; + +export type VaultModInternalOptions = { + description?: string; + ipavaulttype?: IpaVaultType; + ipavaultsalt?: Bytes; + ipavaultpublickey?: Bytes; + setattr?: string; + addattr?: string; + delattr?: string; + rights: boolean; + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; + +export type VaultRemoveMemberArgs = { + cn: string; +}; + +export type VaultRemoveMemberOptions = { + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + services?: string; +}; + +export type VaultRemoveOwnerArgs = { + cn: string; +}; + +export type VaultRemoveOwnerOptions = { + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + services?: string; +}; + +export type VaultRetrieveInternalArgs = { + cn: string; +}; + +export type VaultRetrieveInternalOptions = { + service?: Principal; + shared?: boolean; + username?: string; + session_key: Bytes; + wrapping_algo?: IpaWrappingAlgo; + all: boolean; + raw: boolean; + version?: string; +}; + +export type VaultShowArgs = { + cn: string; +}; + +export type VaultShowOptions = { + rights: boolean; + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; diff --git a/src/services/requests/vaultconfig.ts b/src/services/requests/vaultconfig.ts new file mode 100644 index 000000000..ebc7cf512 --- /dev/null +++ b/src/services/requests/vaultconfig.ts @@ -0,0 +1,8 @@ +export type VaultconfigShowArgs = null; + +export type VaultconfigShowOptions = { + transport_out?: string; + all: boolean; + raw: boolean; + version?: string; +}; diff --git a/src/services/requests/vaultcontainer.ts b/src/services/requests/vaultcontainer.ts new file mode 100644 index 000000000..242a62ef6 --- /dev/null +++ b/src/services/requests/vaultcontainer.ts @@ -0,0 +1,54 @@ +import { Principal } from "../types/primitives"; + +export type VaultcontainerAddOwnerArgs = null; + +export type VaultcontainerAddOwnerOptions = { + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + services?: string; +}; + +export type VaultcontainerDelArgs = null; + +export type VaultcontainerDelOptions = { + continue: boolean; + service?: Principal; + shared?: boolean; + username?: string; + version?: string; +}; + +export type VaultcontainerRemoveOwnerArgs = null; + +export type VaultcontainerRemoveOwnerOptions = { + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; + user?: string; + group?: string; + services?: string; +}; + +export type VaultcontainerShowArgs = null; + +export type VaultcontainerShowOptions = { + rights: boolean; + service?: Principal; + shared?: boolean; + username?: string; + all: boolean; + raw: boolean; + version?: string; + no_members: boolean; +}; From 95396839c2876e5cc9a432a4fc06b7b03852b76a Mon Sep 17 00:00:00 2001 From: David Hanina Date: Thu, 9 Jul 2026 15:10:29 +0200 Subject: [PATCH 8/8] Add Requests show case Adds requests, which adds a RequestMethod type that forces the developer to use the correct types for args and options. Assisted-by: Cursor cursoragent@cursor.com Signed-off-by: David Hanina --- src/services/request.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/services/request.ts diff --git a/src/services/request.ts b/src/services/request.ts new file mode 100644 index 000000000..04536591a --- /dev/null +++ b/src/services/request.ts @@ -0,0 +1,17 @@ +import { RequestMap } from "./requests"; + +type ObjectValueTuple = { + [K in keyof T]-?: (x: T[K], ...args: ObjectValueTuple>) => void; +} extends (x: infer V, ...args: infer R) => void + ? [V, ...R] + : []; + +type ArgsAsArray = T extends null + ? [] + : ObjectValueTuple; + +type RequestMethod = ( + methodName: T, + args: ArgsAsArray, + options: RequestMap[T]["options"] +) => Promise; // TODO: Replace with typed response once we generate responses