Skip to content

responses

EntryInfoResponse

Source code in optimade/models/responses.py
57
58
59
60
class EntryInfoResponse(Success):
    data: EntryInfoResource = StrictField(
        ..., description="OPTIMADE information for an entry endpoint."
    )

data: EntryInfoResource = StrictField(Ellipsis, description='OPTIMADE information for an entry endpoint.') class-attribute

EntryResponseMany

Source code in optimade/models/responses.py
76
77
78
79
80
81
82
class EntryResponseMany(Success):
    data: Union[List[EntryResource], List[Dict[str, Any]]] = Field(
        ..., uniqueItems=True
    )
    included: Optional[Union[List[EntryResource], List[Dict[str, Any]]]] = Field(
        None, uniqueItems=True
    )

data: Union[List[EntryResource], List[Dict[str, Any]]] = Field(Ellipsis, uniqueItems=True) class-attribute

included: Optional[Union[List[EntryResource], List[Dict[str, Any]]]] = Field(None, uniqueItems=True) class-attribute

EntryResponseOne

Source code in optimade/models/responses.py
69
70
71
72
73
class EntryResponseOne(Success):
    data: Union[EntryResource, Dict[str, Any], None] = Field(...)
    included: Optional[Union[List[EntryResource], List[Dict[str, Any]]]] = Field(
        None, uniqueItems=True
    )

data: Union[EntryResource, Dict[str, Any], None] = Field(Ellipsis) class-attribute

included: Optional[Union[List[EntryResource], List[Dict[str, Any]]]] = Field(None, uniqueItems=True) class-attribute

ErrorResponse

errors MUST be present and data MUST be skipped

Source code in optimade/models/responses.py
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class ErrorResponse(Response):
    """errors MUST be present and data MUST be skipped"""

    meta: ResponseMeta = StrictField(
        ..., description="A meta object containing non-standard information."
    )
    errors: List[OptimadeError] = StrictField(
        ...,
        description="A list of OPTIMADE-specific JSON API error objects, where the field detail MUST be present.",
        uniqueItems=True,
    )

    @root_validator(pre=True)
    def data_must_be_skipped(cls, values):
        if "data" in values:
            raise ValueError("data MUST be skipped for failures reporting errors.")
        return values

errors: List[OptimadeError] = StrictField(Ellipsis, description='A list of OPTIMADE-specific JSON API error objects, where the field detail MUST be present.', uniqueItems=True) class-attribute

meta: ResponseMeta = StrictField(Ellipsis, description='A meta object containing non-standard information.') class-attribute

data_must_be_skipped(values)

Source code in optimade/models/responses.py
44
45
46
47
48
@root_validator(pre=True)
def data_must_be_skipped(cls, values):
    if "data" in values:
        raise ValueError("data MUST be skipped for failures reporting errors.")
    return values

IndexInfoResponse

Source code in optimade/models/responses.py
51
52
53
54
class IndexInfoResponse(Success):
    data: IndexInfoResource = StrictField(
        ..., description="Index meta-database /info data."
    )

data: IndexInfoResource = StrictField(Ellipsis, description='Index meta-database /info data.') class-attribute

InfoResponse

Source code in optimade/models/responses.py
63
64
65
66
class InfoResponse(Success):
    data: BaseInfoResource = StrictField(
        ..., description="The implementations /info data."
    )

data: BaseInfoResource = StrictField(Ellipsis, description='The implementations /info data.') class-attribute

LinksResponse

Source code in optimade/models/responses.py
85
86
87
88
89
90
class LinksResponse(EntryResponseMany):
    data: Union[List[LinksResource], List[Dict[str, Any]]] = StrictField(
        ...,
        description="List of unique OPTIMADE links resource objects.",
        uniqueItems=True,
    )

data: Union[List[LinksResource], List[Dict[str, Any]]] = StrictField(Ellipsis, description='List of unique OPTIMADE links resource objects.', uniqueItems=True) class-attribute

ReferenceResponseMany

Source code in optimade/models/responses.py
113
114
115
116
117
118
class ReferenceResponseMany(EntryResponseMany):
    data: Union[List[ReferenceResource], List[Dict[str, Any]]] = StrictField(
        ...,
        description="List of unique OPTIMADE references entry resource objects.",
        uniqueItems=True,
    )

data: Union[List[ReferenceResource], List[Dict[str, Any]]] = StrictField(Ellipsis, description='List of unique OPTIMADE references entry resource objects.', uniqueItems=True) class-attribute

ReferenceResponseOne

Source code in optimade/models/responses.py
107
108
109
110
class ReferenceResponseOne(EntryResponseOne):
    data: Union[ReferenceResource, Dict[str, Any], None] = StrictField(
        ..., description="A single references entry resource."
    )

data: Union[ReferenceResource, Dict[str, Any], None] = StrictField(Ellipsis, description='A single references entry resource.') class-attribute

StructureResponseMany

Source code in optimade/models/responses.py
 99
100
101
102
103
104
class StructureResponseMany(EntryResponseMany):
    data: Union[List[StructureResource], List[Dict[str, Any]]] = StrictField(
        ...,
        description="List of unique OPTIMADE structures entry resource objects.",
        uniqueItems=True,
    )

data: Union[List[StructureResource], List[Dict[str, Any]]] = StrictField(Ellipsis, description='List of unique OPTIMADE structures entry resource objects.', uniqueItems=True) class-attribute

StructureResponseOne

Source code in optimade/models/responses.py
93
94
95
96
class StructureResponseOne(EntryResponseOne):
    data: Union[StructureResource, Dict[str, Any], None] = StrictField(
        ..., description="A single structures entry resource."
    )

data: Union[StructureResource, Dict[str, Any], None] = StrictField(Ellipsis, description='A single structures entry resource.') class-attribute