import {z} from 'zod' export type GetApiRestV1CoreChemcompCompIdArgs = {comp_id: string}; export type GetApiRestV1CoreChemcompCompIdOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; export const chemComp = z.object({formula: z.string().optional(), formula_weight: z.number().optional(), id: z.string(), mon_nstd_parent_comp_id: z.array(z.string()).optional(), name: z.string().optional(), one_letter_code: z.string().optional(), pdbx_ambiguous_flag: z.string().optional(), pdbx_formal_charge: z.number().int().optional(), pdbx_initial_date: z.string().optional(), pdbx_modified_date: z.string().optional(), pdbx_pcm: z.enum(["N", "Y"]).optional(), pdbx_processing_site: z.enum(["EBI", "PDBC", "PDBE", "PDBJ", "RCSB"]).optional(), pdbx_release_status: z.enum(["DEL", "HOLD", "HPUB", "OBS", "REF_ONLY", "REL"]).optional(), pdbx_replaced_by: z.string().optional(), pdbx_replaces: z.string().optional(), pdbx_subcomponent_list: z.string().optional(), three_letter_code: z.string().optional(), type: z.enum(["D-beta-peptide, C-gamma linking", "D-gamma-peptide, C-delta linking", "D-peptide COOH carboxy terminus", "D-peptide NH3 amino terminus", "D-peptide linking", "D-saccharide", "D-saccharide, alpha linking", "D-saccharide, beta linking", "DNA OH 3 prime terminus", "DNA OH 5 prime terminus", "DNA linking", "L-DNA linking", "L-RNA linking", "L-beta-peptide, C-gamma linking", "L-gamma-peptide, C-delta linking", "L-peptide COOH carboxy terminus", "L-peptide NH3 amino terminus", "L-peptide linking", "L-saccharide", "L-saccharide, alpha linking", "L-saccharide, beta linking", "RNA OH 3 prime terminus", "RNA OH 5 prime terminus", "RNA linking", "non-polymer", "other", "peptide linking", "peptide-like", "saccharide"]).optional()}); export const pdbxChemCompAtomCoordination = z.object({atom_id: z.string().optional(), geometry_generic: z.enum(["ball", "bent", "cubic", "cubic with vacancy", "cuboctahedral", "dodecahedral", "hexagonal bipyramidal", "hexagonal bipyramidal with axial vacancy", "hexagonal bipyramidal with equatorial vacancy", "hexagonal planar", "irregular", "linear", "linear bicapped", "linear monocapped", "octahedral", "octahedral cis bicapped", "octahedral edge monocapped", "octahedral face monocapped", "octahedral monocapped with capped face vacancy", "octahedral monocapped with non-capped face vacancy", "octahedral trans bicapped", "paired octahedral", "penta trigonal planar", "penta trigonal planar i", "penta trigonal planar i i", "penta trigonal planar v", "pentagonal antiprismatic", "pentagonal bipyramidal", "pentagonal bipyramidal with axial vacancy", "pentagonal bipyramidal with equatorial vacancy", "pentagonal prismatic", "pyramidal", "sandwich 4 2", "sandwich 4 3", "sandwich 4h 2", "sandwich 4h 3", "sandwich 4h 4", "sandwich 4h 4h", "sandwich 5 1", "sandwich 5 2", "sandwich 5 3", "sandwich 5 4", "sandwich 5 4 i", "sandwich 5 4h", "sandwich 5 4h v", "sandwich 5 5", "sandwich 5 5 4", "sandwich 5 5 i", "sandwich 5 5 star", "sandwich 5 5 v", "sandwich 5 5 v i", "sandwich 5 5 v v", "sandwich 5 5 v v 3d", "sandwich 5 5o", "sandwich 5 capped 1", "sandwich 5 hexagonal pyramidal", "sandwich 5 pentagonal pyramidal", "sandwich 5 square pyramidal", "sandwich 5 square pyramidal monocapped", "sandwich 5 tricapped i", "sandwich 5 tricapped v", "sandwich 5h 3", "sandwich 6 1", "sandwich 6 2", "sandwich 6 3", "sandwich 6 4", "sandwich 6 5", "sandwich 6 5 v", "sandwich 6 6", "sandwich 6 6 triangle", "sandwich 6 6 v", "sandwich 6 trigonal pyramidal", "sandwich 7 1", "sandwich 7 2", "sandwich 7 3", "sandwich 7 5", "sandwich 8 3", "sandwich 8 4", "sandwich 8 5", "sandwich 8 5 i", "sandwich 8 8", "sandwich 8 8 i", "sandwich 8 8 v", "sandwich c5 5 i", "seamine", "square antiprismatic", "square antiprismatic bicapped", "square antiprismatic monocapped", "square antiprismatic with vacancy", "square non-planar", "square planar", "square planar bicapped", "square planar monocapped", "square pyramidal", "square pyramidal with vacancy", "t shape", "tetrahedral", "trigonal bipyramidal", "trigonal bipyramidal with vacancy", "trigonal planar", "trigonal planar bicapped", "trigonal planar monocapped", "trigonal planar tricapped", "trigonal prism tricapped", "trigonal prismatic", "trigonal prismatic all face capped", "trigonal prismatic monocapped", "trigonal prismatic monocapped with capped face vacancy", "trigonal prismatic monocapped with non-capped face vacancy", "trigonal prismatic square-face bicapped", "trigonal prismatic triangular-face bicapped", "trigonal prismatic with vacancy", "trigonal pyramidal"]).optional(), number: z.number().int().optional(), provenance: z.enum(["Author", "FindGeo", "MetalCoord", "PDB"])}); export const pdbxChemCompAudit = z.object({action_type: z.enum(["Create component", "Initial release", "Modify PCM", "Modify aromatic_flag", "Modify atom id", "Modify backbone", "Modify charge", "Modify component atom id", "Modify component comp_id", "Modify coordinates", "Modify descriptor", "Modify formal charge", "Modify formula", "Modify identifier", "Modify internal type", "Modify leaving atom flag", "Modify linking type", "Modify metal description", "Modify model coordinates code", "Modify name", "Modify one letter code", "Modify parent residue", "Modify processing site", "Modify subcomponent list", "Modify synonyms", "Modify value order", "Obsolete component", "Other modification"]).optional(), comp_id: z.string().optional(), date: z.string().optional(), details: z.string().optional(), ordinal: z.number().int()}); export const pdbxChemCompDescriptor = z.object({comp_id: z.string(), descriptor: z.string().optional(), program: z.string(), program_version: z.string(), type: z.enum(["InChI", "InChIKey", "InChI_CHARGE", "InChI_FIXEDH", "InChI_ISOTOPE", "InChI_MAIN", "InChI_MAIN_CONNECT", "InChI_MAIN_FORMULA", "InChI_MAIN_HATOM", "InChI_RECONNECT", "InChI_STEREO", "SMILES", "SMILES_CANNONICAL", "SMILES_CANONICAL"])}); export const pdbxChemCompFeature = z.object({comp_id: z.string(), source: z.string(), type: z.enum(["CARBOHYDRATE ANOMER", "CARBOHYDRATE ISOMER", "CARBOHYDRATE PRIMARY CARBONYL GROUP", "CARBOHYDRATE RING"]), value: z.string()}); export const pdbxChemCompIdentifier = z.object({comp_id: z.string(), identifier: z.string().optional(), program: z.string(), program_version: z.string(), type: z.enum(["CAS REGISTRY NUMBER", "COMMON NAME", "CONDENSED IUPAC CARB SYMBOL", "CONDENSED IUPAC CARBOHYDRATE SYMBOL", "IUPAC CARB SYMBOL", "IUPAC CARBOHYDRATE SYMBOL", "MDL Identifier", "PUBCHEM Identifier", "SNFG CARB SYMBOL", "SNFG CARBOHYDRATE SYMBOL", "SYNONYM", "SYSTEMATIC NAME"])}); export const pdbxChemCompPcm = z.object({category: z.enum(["ADP-ribose", "Amino acid", "Biotin", "Carbohydrate", "Chromophore/chromophore-like", "Covalent chemical modification", "Crosslinker", "Flavin", "Heme/heme-like", "Lipid/lipid-like", "Metal coordination", "Named protein modification", "Non-standard residue", "Nucleotide monophosphate", "Terminal acetylation", "Terminal amidation"]).optional(), comp_id_linking_atom: z.string().optional(), modified_residue_id: z.string().optional(), modified_residue_id_linking_atom: z.string().optional(), polypeptide_position: z.enum(["Any position", "C-terminal", "N-terminal"]).optional(), position: z.enum(["Amino-acid backbone", "Amino-acid side chain", "Amino-acid side chain and backbone"]).optional(), rcsb_modified_residue_id: z.array(z.string()).optional(), type: z.enum(["(3-Aminopropyl)(5'-adenosyl)phosphono amidation", "(3R)-3-Hydroxybutyrylation", "12-Hydroxyfarnesylation", "12-Oxomyristoylation", "12R-Hydroxymyristoylation", "14-Hydroxy-10,13-dioxo-7-heptadecenoic acid", "2,3-Dicarboxypropylation", "2-Aminoadipylation", "2-Aminoethylphosphorylation", "2-Cholinephosphorylation", "2-Hydroxyisobutyrylation", "2-Oxo-5,5-dimethylhexanoylation", "2-Oxobutanoic acid", "3-Oxoalanine", "3-Phenyllactic acid", "4-Phosphopantetheine", "ADP-ribosylation", "ADP-riboxanation", "AMPylation", "Acetamidation", "Acetamidomethylation", "Acetylation", "Alanylation", "Allysine", "Amination", "Arachidoylation", "Archaeol", "Arginylation", "Arsenylation", "Asparaginylation", "Aspartylation", "Bacillithiolation", "Benzoylation", "Benzylation", "Beta-amino acid", "Beta-hydroxybutyrylation", "Beta-lysylation", "Beta-mercaptoethanol", "Biotinylation", "Bromination", "Butyrylation", "C-Mannosylation", "CMPylation", "Carbamoylation", "Carboxyethylation", "Carboxylation", "Carboxymethylation", "Chlorination", "Cholesterylation", "Citrullination", "Crotonylation", "Cyanation", "Cysteinylation", "D-alanylation", "D-arginylation", "D-asparaginylation", "D-aspartylation", "D-cysteinylation", "D-glutaminylation", "D-glutamylation", "D-histidinylation", "D-isoleucylation", "D-lactate", "D-leucylation", "D-lysylation", "D-methionylation", "D-phenylalanylation", "D-prolylation", "D-serylation", "D-threoninylation", "D-tryptophanylation", "D-tyrosination", "D-valylation", "Deamidation", "Decanoylation", "Decarboxylation", "Dehydroamino acid", "Dehydrocoelenterazination", "Dehydrogenation", "Dehydroxylation", "Deoxidation", "Deoxyhypusine", "Diacylglycerol", "Dihydroxyacetonation", "Dimethylamination", "Diphosphorylation", "Diphthamide", "Dipyrromethane methylation", "Dopaminylation", "Ethylation", "Ethylsulfanylation", "Farnesylation", "Fluorination", "Formylation", "GMPylation", "Geranylgeranylation", "Glutaminylation", "Glutamylation", "Glutarylation", "Glutathionylation", "Glycerophosphorylation", "Glycerylphosphorylethanolamination", "Glycylation", "Heptanoylation", "Hexanoylation", "Histaminylation", "Histidinylation", "Hydrogenation", "Hydroperoxylation", "Hydroxyamination", "Hydroxyethylation", "Hydroxylation", "Hydroxymethylation", "Hydroxysulfanylation", "Hypusine", "Iodination", "Isobutyrylation", "Isoleucylation", "L-lactate", "Lactoylation", "Laurylation", "Leucylation", "Lipoylation", "Lysylation", "Malonylation", "Methacrylation", "Methionylation", "Methoxylation", "Methylamination", "Methylation", "Methylsulfanylation", "Methylsulfation", "Myristoylation", "N-Glycosylation", "N-methylcarbamoylation", "N-pyruvic acid 2-iminylation", "N6-benzoyllysine", "N6-isonicotinyllysine", "N6-methacryllysine", "Nitration", "Nitrosylation", "None", "Noradrenylation", "Norleucine", "Norvaline", "O-Glycosylation", "Octanoylation", "Oleoylation", "Ornithine", "Oxidation", "Palmitoleoylation", "Palmitoylation", "Pentadecanoylation", "Pentanoylation", "Phenylalanylation", "Phosphatidylethanolamine amidation", "Phosphoenolpyruvate", "Phosphorylation", "Prolylation", "Propionylation", "Pyridoxal phosphate", "Pyrrolidone carboxylic acid", "Pyruvic acid", "Retinoylation", "S-Glycosylation", "Selanylation", "Selenomethionine", "Serotonylation", "Serylation", "Stearoylation", "Stereoisomerisation", "Succinamide ring", "Succination", "Succinylation", "Sulfanylmethylation", "Sulfation", "Sulfhydration", "Tert-butylation", "Tert-butyloxycarbonylation", "Threoninylation", "Thyroxine", "Triiodothyronine", "Triphosphorylation", "Tryptophanylation", "Tyrosination", "UMPylation", "Valylation", "cGMPylation"]).optional(), uniprot_generic_ptm_accession: z.string().optional(), uniprot_specific_ptm_accession: z.string().optional()}); export const pdbxFamilyPrdAudit = z.object({action_type: z.enum(["Add PRD", "Create family", "Initial release", "Modify annotation", "Modify citation", "Modify family classification", "Modify family name", "Modify feature", "Modify molecule details", "Modify related structures", "Modify sequence", "Modify synonyms", "Obsolete family", "Obsolete familyt", "Other modification", "Remove PRD"]), annotator: z.string().optional(), date: z.string(), details: z.string().optional(), family_prd_id: z.string(), processing_site: z.string().optional()}); export const pdbxPrdAudit = z.object({action_type: z.enum(["Create molecule", "Initial release", "Modify audit", "Modify class", "Modify linkage", "Modify molecule name", "Modify representation", "Modify sequence", "Modify taxonomy organism", "Modify type", "Obsolete molecule", "Other modification"]), annotator: z.string().optional(), date: z.string(), details: z.string().optional(), prd_id: z.string(), processing_site: z.enum(["BMRB", "PDBC", "PDBE", "PDBJ", "RCSB"]).optional()}); export const pdbxReferenceEntityList = z.object({component_id: z.number().int(), details: z.string().optional(), prd_id: z.string(), ref_entity_id: z.string(), type: z.enum(["branched", "non-polymer", "polymer", "polymer-like"]).optional()}); export const pdbxReferenceEntityPoly = z.object({db_code: z.string().optional(), db_name: z.string().optional(), prd_id: z.string(), ref_entity_id: z.string(), type: z.enum(["nucleic-acid-like", "oligosaccharide", "peptide-like", "polysaccharide-like"]).optional()}); export const pdbxReferenceEntityPolyLink = z.object({atom_id_1: z.string().optional(), atom_id_2: z.string().optional(), comp_id_1: z.string().optional(), comp_id_2: z.string().optional(), component_id: z.number().int(), entity_seq_num_1: z.number().int().optional(), entity_seq_num_2: z.number().int().optional(), link_id: z.number().int(), prd_id: z.string(), ref_entity_id: z.string(), value_order: z.enum(["arom", "delo", "doub", "pi", "poly", "quad", "sing", "trip"]).optional()}); export const pdbxReferenceEntityPolySeq = z.object({hetero: z.enum(["N", "Y"]), mon_id: z.string(), num: z.number().int(), observed: z.enum(["N", "Y"]).optional(), parent_mon_id: z.string().optional(), prd_id: z.string(), ref_entity_id: z.string()}); export const pdbxReferenceEntitySequence = z.object({NRP_flag: z.enum(["N", "Y"]).optional(), one_letter_codes: z.string().optional(), prd_id: z.string(), ref_entity_id: z.string(), type: z.enum(["peptide-like", "saccharide"]).optional()}); export const pdbxReferenceEntitySrcNat = z.object({atcc: z.string().optional(), db_code: z.string().optional(), db_name: z.string().optional(), ordinal: z.number().int(), organism_scientific: z.string().optional(), prd_id: z.string(), ref_entity_id: z.string(), source: z.string().optional(), source_id: z.string().optional(), taxid: z.string().optional()}); export const pdbxReferenceMolecule = z.object({chem_comp_id: z.string().optional(), class: z.enum(["Antagonist", "Anthelmintic", "Antibiotic", "Antibiotic, Anthelmintic", "Antibiotic, Antimicrobial", "Antibiotic, Antineoplastic", "Anticancer", "Anticoagulant", "Anticoagulant, Antithrombotic", "Antifungal", "Antigen", "Antiinflammatory", "Antimicrobial", "Antimicrobial, Antiparasitic, Antibiotic", "Antimicrobial, Antiretroviral", "Antimicrobial, Antitumor", "Antineoplastic", "Antiparasitic", "Antiretroviral", "Antithrombotic", "Antitumor", "Antiviral", "CASPASE inhibitor", "Chaperone binding", "Drug delivery", "Enzyme inhibitor", "Glycan component", "Growth factor", "Immunosuppressant", "Inducer", "Inhibitor", "Lantibiotic", "Metabolism", "Metal transport", "Nutrient", "Oxidation-reduction", "Protein binding", "Receptor", "Substrate analog", "Synthetic opioid", "Thrombin inhibitor", "Thrombin inhibitor, Trypsin inhibitor", "Toxin", "Transition state mimetic", "Transport activator", "Trypsin inhibitor", "Unknown", "Water retention"]).optional(), class_evidence_code: z.string().optional(), compound_details: z.string().optional(), description: z.string().optional(), formula: z.string().optional(), formula_weight: z.number().optional(), name: z.string().optional(), prd_id: z.string(), release_status: z.enum(["HOLD", "OBS", "REL", "WAIT"]).optional(), replaced_by: z.string().optional(), replaces: z.string().optional(), represent_as: z.enum(["branched", "polymer", "single molecule"]).optional(), representative_PDB_id_code: z.string().optional(), type: z.enum(["Amino acid", "Aminoglycoside", "Ansamycin", "Anthracycline", "Anthraquinone", "Chalkophore", "Chalkophore, Polypeptide", "Chromophore", "Cyclic depsipeptide", "Cyclic lipopeptide", "Cyclic peptide", "Glycopeptide", "Heterocyclic", "Imino sugar", "Keto acid", "Lipoglycopeptide", "Lipopeptide", "Macrolide", "Non-polymer", "Nucleoside", "Oligopeptide", "Oligosaccharide", "Peptaibol", "Peptide-like", "Polycyclic", "Polypeptide", "Polysaccharide", "Quinolone", "Siderophore", "Thiolactone", "Thiopeptide", "Unknown"]).optional(), type_evidence_code: z.string().optional()}); export const pdbxReferenceMoleculeAnnotation = z.object({family_prd_id: z.string(), ordinal: z.number().int(), prd_id: z.string().optional(), source: z.string().optional(), text: z.string().optional(), type: z.string().optional()}); export const pdbxReferenceMoleculeDetails = z.object({family_prd_id: z.string(), ordinal: z.number().int(), source: z.string().optional(), source_id: z.string().optional(), text: z.string().optional()}); export const pdbxReferenceMoleculeFamily = z.object({family_prd_id: z.string(), name: z.string().optional(), release_status: z.enum(["HOLD", "OBS", "REL", "WAIT"]).optional(), replaced_by: z.string().optional(), replaces: z.string().optional()}); export const pdbxReferenceMoleculeFeatures = z.object({family_prd_id: z.string(), ordinal: z.number().int(), prd_id: z.string(), source: z.string().optional(), source_ordinal: z.number().int().optional(), type: z.string().optional(), value: z.string().optional()}); export const pdbxReferenceMoleculeList = z.object({family_prd_id: z.string(), prd_id: z.string()}); export const pdbxReferenceMoleculeRelatedStructures = z.object({citation_id: z.string().optional(), db_accession: z.string().optional(), db_code: z.string().optional(), db_name: z.string().optional(), family_prd_id: z.string(), formula: z.string().optional(), name: z.string().optional(), ordinal: z.number().int()}); export const pdbxReferenceMoleculeSynonyms = z.object({family_prd_id: z.string(), name: z.string().optional(), ordinal: z.number().int(), prd_id: z.string(), source: z.string().optional()}); export const rcsbBirdCitation = z.object({id: z.string(), journal_abbrev: z.string().optional(), journal_volume: z.string().optional(), page_first: z.string().optional(), page_last: z.string().optional(), pdbx_database_id_DOI: z.string().optional(), pdbx_database_id_PubMed: z.number().int().optional(), rcsb_authors: z.array(z.string()).optional(), title: z.string().optional(), year: z.number().int().optional()}); export const rcsbChemCompAnnotationAnnotationLineage = z.object({depth: z.number().int().optional(), id: z.string().optional(), name: z.string().optional()}); export const rcsbChemCompAnnotation = z.object({annotation_id: z.string().optional(), assignment_version: z.string().optional(), description: z.string().optional(), name: z.string().optional(), provenance_source: z.string().optional(), type: z.enum(["ATC", "Carbohydrate Anomer", "Carbohydrate Isomer", "Carbohydrate Primary Carbonyl Group", "Carbohydrate Ring", "Generating Enzyme", "Modification Type", "PSI-MOD"]).optional(), annotation_lineage: z.array(rcsbChemCompAnnotationAnnotationLineage).optional()}); export const rcsbChemCompContainerIdentifiers = z.object({atc_codes: z.array(z.string()).optional(), comp_id: z.string(), drugbank_id: z.string().optional(), prd_id: z.string().optional(), rcsb_id: z.string().optional(), subcomponent_ids: z.array(z.string()).optional()}); export const rcsbChemCompDescriptor = z.object({InChI: z.string().optional(), InChIKey: z.string().optional(), SMILES: z.string().optional(), SMILES_stereo: z.string().optional(), comp_id: z.string()}); export const rcsbChemCompInfo = z.object({atom_count: z.number().int().optional(), atom_count_chiral: z.number().int().optional(), atom_count_heavy: z.number().int().optional(), bond_count: z.number().int().optional(), bond_count_aromatic: z.number().int().optional(), comp_id: z.string(), initial_deposition_date: z.string().optional(), initial_release_date: z.string().optional(), release_status: z.enum(["DEL", "HOLD", "HPUB", "OBS", "REF_ONLY", "REL"]).optional(), revision_date: z.string().optional()}); export const rcsbChemCompRelated = z.object({comp_id: z.string(), ordinal: z.number().int(), related_mapping_method: z.enum(["assigned by DrugBank resource", "assigned by PDB", "assigned by PubChem resource", "matching ChEMBL ID in Pharos", "matching InChIKey in DrugBank", "matching InChIKey in PubChem", "matching InChIKey-prefix in DrugBank", "matching by RESID resource"]).optional(), resource_accession_code: z.string().optional(), resource_name: z.enum(["CAS", "CCDC/CSD", "COD", "ChEBI", "ChEMBL", "DrugBank", "Pharos", "PubChem", "RESID"]).optional()}); export const rcsbChemCompSynonyms = z.object({comp_id: z.string(), name: z.string().optional(), ordinal: z.number().int(), provenance_source: z.enum(["ACDLabs", "Author", "ChEBI", "ChEMBL", "DrugBank", "GMML", "Lexichem", "OpenEye OEToolkits", "OpenEye/Lexichem", "PDB Reference Data", "PDB Reference Data (Preferred)", "PDB-CARE", "PubChem", "RESID"]).optional(), type: z.enum(["Brand Name", "Common Name", "Condensed IUPAC Carbohydrate Symbol", "IUPAC Carbohydrate Symbol", "Preferred Common Name", "Preferred Name", "Preferred Synonym", "SNFG Carbohydrate Symbol", "Synonym", "Systematic Name"]).optional()}); export const rcsbChemCompTarget = z.object({comp_id: z.string(), interaction_type: z.string().optional(), name: z.string().optional(), ordinal: z.number().int(), provenance_source: z.enum(["DrugBank", "PDB Primary Data"]).optional(), reference_database_accession_code: z.string().optional(), reference_database_name: z.literal("UniProt").optional(), target_actions: z.array(z.string()).optional()}); export const rcsbSchemaContainerIdentifiers = z.object({collection_name: z.string(), collection_schema_version: z.string().optional(), schema_name: z.string()}); export const coreChemComp = z.object({chem_comp: chemComp.optional(), pdbx_chem_comp_atom_coordination: z.array(pdbxChemCompAtomCoordination).optional(), pdbx_chem_comp_audit: z.array(pdbxChemCompAudit).optional(), pdbx_chem_comp_descriptor: z.array(pdbxChemCompDescriptor).optional(), pdbx_chem_comp_feature: z.array(pdbxChemCompFeature).optional(), pdbx_chem_comp_identifier: z.array(pdbxChemCompIdentifier).optional(), pdbx_chem_comp_pcm: z.array(pdbxChemCompPcm).optional(), pdbx_family_prd_audit: z.array(pdbxFamilyPrdAudit).optional(), pdbx_prd_audit: z.array(pdbxPrdAudit).optional(), pdbx_reference_entity_list: z.array(pdbxReferenceEntityList).optional(), pdbx_reference_entity_poly: z.array(pdbxReferenceEntityPoly).optional(), pdbx_reference_entity_poly_link: z.array(pdbxReferenceEntityPolyLink).optional(), pdbx_reference_entity_poly_seq: z.array(pdbxReferenceEntityPolySeq).optional(), pdbx_reference_entity_sequence: z.array(pdbxReferenceEntitySequence).optional(), pdbx_reference_entity_src_nat: z.array(pdbxReferenceEntitySrcNat).optional(), pdbx_reference_molecule: pdbxReferenceMolecule.optional(), pdbx_reference_molecule_annotation: z.array(pdbxReferenceMoleculeAnnotation).optional(), pdbx_reference_molecule_details: z.array(pdbxReferenceMoleculeDetails).optional(), pdbx_reference_molecule_family: pdbxReferenceMoleculeFamily.optional(), pdbx_reference_molecule_features: z.array(pdbxReferenceMoleculeFeatures).optional(), pdbx_reference_molecule_list: z.array(pdbxReferenceMoleculeList).optional(), pdbx_reference_molecule_related_structures: z.array(pdbxReferenceMoleculeRelatedStructures).optional(), pdbx_reference_molecule_synonyms: z.array(pdbxReferenceMoleculeSynonyms).optional(), rcsb_bird_citation: z.array(rcsbBirdCitation).optional(), rcsb_chem_comp_annotation: z.array(rcsbChemCompAnnotation).optional(), rcsb_chem_comp_container_identifiers: rcsbChemCompContainerIdentifiers.optional(), rcsb_chem_comp_descriptor: rcsbChemCompDescriptor.optional(), rcsb_chem_comp_info: rcsbChemCompInfo.optional(), rcsb_chem_comp_related: z.array(rcsbChemCompRelated).optional(), rcsb_chem_comp_synonyms: z.array(rcsbChemCompSynonyms).optional(), rcsb_chem_comp_target: z.array(rcsbChemCompTarget).optional(), rcsb_schema_container_identifiers: z.array(rcsbSchemaContainerIdentifiers).optional(), rcsb_id: z.string()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get chemical component (ligands, small molecules and monomers) by CCD ID. * * GET /rest/v1/core/chemcomp/{comp_id} */ export const getApiRestV1CoreChemcompCompId = async (args: GetApiRestV1CoreChemcompCompIdArgs, options: GetApiRestV1CoreChemcompCompIdOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json;charset=utf-8") const url = `${baseUrl.replace(/\/+$/, '')}/rest/v1/core/chemcomp/${encodeURIComponent(String(args.comp_id))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(coreChemComp, await res.json()) };