Skip to content

authorized_domains

authorized_domains

GetAppDomainsNotFoundError

GetAppDomainsNotFoundError(
    res: ResponseGetData, message: str = ""
)

Bases: Config_GET_Error

Raised when authorized custom app domains retrieval fails.

This exception is used for failures during GET operations on authorized custom app domains, including API errors and unexpected response formats.

Source code in src/crew_dcs/routes/instance_config/authorized_domains.py
49
50
def __init__(self, res: rgd.ResponseGetData, message: str = ""):
    super().__init__(res=res, message=message)

GetDomainsNotFoundError

GetDomainsNotFoundError(
    res: ResponseGetData, message: str = ""
)

Bases: Config_GET_Error

Raised when authorized domains retrieval fails.

This exception is used for failures during GET operations on authorized domains, including API errors and unexpected response formats.

Source code in src/crew_dcs/routes/instance_config/authorized_domains.py
38
39
def __init__(self, res: rgd.ResponseGetData, message: str = ""):
    super().__init__(res=res, message=message)

get_authorized_custom_app_domains async

get_authorized_custom_app_domains(
    auth: DomoAuth,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any
) -> ResponseGetData

GET /api/content/v1/customer-states/authorized-app-domains - Retrieve authorized custom app domains.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object containing Domo credentials.

required
return_raw bool

If True, return the raw ResponseGetData object. If False (default), return parsed list of domain strings.

False
context RouteContext | None

Optional RouteContext for API request configuration.

None
**context_kwargs Any

Additional context parameters (session, debug_api, etc.).

{}

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the response. The response field contains

ResponseGetData

a list of domain strings when return_raw is False, or the raw API response

ResponseGetData

when return_raw is True.

Raises:

Type Description
GetAppDomainsNotFoundError

If the API request fails or returns an error status.

Source code in src/crew_dcs/routes/instance_config/authorized_domains.py
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(
        entity_extractor=DomoEntityExtractor(),
        result_processor=DomoEntityResultProcessor(),
    ),
)
async def get_authorized_custom_app_domains(
    auth: DomoAuth,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any,
) -> rgd.ResponseGetData:
    """GET /api/content/v1/customer-states/authorized-app-domains - Retrieve authorized custom app domains.

    Args:
        auth: Authentication object containing Domo credentials.
        return_raw: If True, return the raw ResponseGetData object.
            If False (default), return parsed list of domain strings.
        context: Optional RouteContext for API request configuration.
        **context_kwargs: Additional context parameters (session, debug_api, etc.).

    Returns:
        ResponseGetData object containing the response. The response field contains
        a list of domain strings when return_raw is False, or the raw API response
        when return_raw is True.

    Raises:
        GetAppDomainsNotFoundError: If the API request fails or returns an error status.
    """
    url = f"https://{auth.domo_instance}.domo.com/api/content/v1/customer-states/authorized-app-domains"

    res = await gd.get_data(
        auth=auth,
        url=url,
        method="GET",
        context=context,
    )

    if return_raw:
        return res

    # domo raises a 404 error even if the success is valid but there are no approved domains
    if res.status == 404 and res.response == "Not Found":
        res_test = await user_routes.get_all_users(auth=auth, context=context)

        if not res_test.is_success:
            raise GetAppDomainsNotFoundError(res=res)

        if res_test.is_success:
            res.status = 200
            res.is_success = True
            res.response = []

        return res

    if not res.is_success:
        raise GetAppDomainsNotFoundError(res=res)

    res.response = [domain.strip() for domain in res.response.get("value").split(",")]  # type: ignore
    return res

get_authorized_domains async

get_authorized_domains(
    auth: DomoAuth,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any
) -> ResponseGetData

GET /api/content/v1/customer-states/authorized-domains - Retrieve authorized domains.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object containing Domo credentials.

required
return_raw bool

If True, return the raw ResponseGetData object. If False (default), return parsed list of domain strings.

False
context RouteContext | None

Optional RouteContext for API request configuration.

None
**context_kwargs Any

Additional context parameters (session, debug_api, etc.).

{}

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the response. The response field contains

ResponseGetData

a list of domain strings when return_raw is False, or the raw API response

ResponseGetData

when return_raw is True.

Raises:

Type Description
GetDomainsNotFoundError

If the API request fails or returns an error status.

Source code in src/crew_dcs/routes/instance_config/authorized_domains.py
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(
        entity_extractor=DomoEntityExtractor(),
        result_processor=DomoEntityResultProcessor(),
    ),
)
async def get_authorized_domains(
    auth: DomoAuth,
    return_raw: bool = False,
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any,
) -> rgd.ResponseGetData:
    """GET /api/content/v1/customer-states/authorized-domains - Retrieve authorized domains.

    Args:
        auth: Authentication object containing Domo credentials.
        return_raw: If True, return the raw ResponseGetData object.
            If False (default), return parsed list of domain strings.
        context: Optional RouteContext for API request configuration.
        **context_kwargs: Additional context parameters (session, debug_api, etc.).

    Returns:
        ResponseGetData object containing the response. The response field contains
        a list of domain strings when return_raw is False, or the raw API response
        when return_raw is True.

    Raises:
        GetDomainsNotFoundError: If the API request fails or returns an error status.
    """
    # get-domains + (on 404) get-all-users reuse one pooled session via
    # auth-level connection reuse (RouteContext.reuse_session, default on).
    url = f"https://{auth.domo_instance}.domo.com/api/content/v1/customer-states/authorized-domains"

    res = await gd.get_data(
        auth=auth,
        url=url,
        method="GET",
        context=context,
    )

    if return_raw:
        return res

    # domo raises a 404 error even if the success is valid but there are no approved domains
    if res.status == 404 and res.response == "Not Found":
        res_test = await user_routes.get_all_users(auth=auth, context=context)

        if not res_test.is_success:
            raise GetDomainsNotFoundError(res=res)

        if res_test.is_success:
            res.status = 200
            res.is_success = True
            res.response = []

        return res

    if not res.is_success:
        raise GetDomainsNotFoundError(res=res)

    res.response = [domain.strip() for domain in res.response.get("value").split(",")]  # type: ignore
    return res

set_authorized_custom_app_domains async

set_authorized_custom_app_domains(
    auth: DomoAuth,
    authorized_custom_app_domain_ls: list[str],
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any
) -> ResponseGetData

PUT /api/content/v1/customer-states/authorized-app-domains - Set authorized custom app domains.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object containing Domo credentials.

required
authorized_custom_app_domain_ls list[str]

List of custom app domain strings to authorize.

required
context RouteContext | None

Optional RouteContext for API request configuration.

None
**context_kwargs Any

Additional context parameters (session, debug_api, etc.).

{}

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the result of retrieving the updated

ResponseGetData

authorized custom app domains list.

Raises:

Type Description
Config_CRUD_Error

If the API request fails.

Source code in src/crew_dcs/routes/instance_config/authorized_domains.py
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def set_authorized_custom_app_domains(
    auth: DomoAuth,
    authorized_custom_app_domain_ls: list[str],
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any,
) -> rgd.ResponseGetData:
    """PUT /api/content/v1/customer-states/authorized-app-domains - Set authorized custom app domains.

    Args:
        auth: Authentication object containing Domo credentials.
        authorized_custom_app_domain_ls: List of custom app domain strings to authorize.
        context: Optional RouteContext for API request configuration.
        **context_kwargs: Additional context parameters (session, debug_api, etc.).

    Returns:
        ResponseGetData object containing the result of retrieving the updated
        authorized custom app domains list.

    Raises:
        Config_CRUD_Error: If the API request fails.
    """
    url = f"https://{auth.domo_instance}.domo.com/api/content/v1/customer-states/authorized-app-domains"

    body = {
        "name": "authorized-app-domains",
        "value": ",".join(authorized_custom_app_domain_ls),
    }

    res = await gd.get_data(
        auth=auth,
        url=url,
        method="PUT",
        body=body,
        context=context,
    )

    if not res.is_success:
        raise Config_CRUD_Error(res=res)

    return await get_authorized_custom_app_domains(
        auth=auth,
        context=context,
    )

set_authorized_domains async

set_authorized_domains(
    auth: DomoAuth,
    authorized_domain_ls: list[str],
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any
) -> ResponseGetData

PUT /api/content/v1/customer-states/authorized-domains - Set authorized domains.

Parameters:

Name Type Description Default
auth DomoAuth

Authentication object containing Domo credentials.

required
authorized_domain_ls list[str]

List of domain strings to authorize.

required
context RouteContext | None

Optional RouteContext for API request configuration.

None
**context_kwargs Any

Additional context parameters (session, debug_api, etc.).

{}

Returns:

Type Description
ResponseGetData

ResponseGetData object containing the result of retrieving the updated

ResponseGetData

authorized domains list.

Raises:

Type Description
Config_CRUD_Error

If the API request fails.

Source code in src/crew_dcs/routes/instance_config/authorized_domains.py
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
@gd.route_function
@log_call(
    level_name="route",
    config=LogDecoratorConfig(result_processor=ResponseGetDataProcessor()),
)
async def set_authorized_domains(
    auth: DomoAuth,
    authorized_domain_ls: list[str],
    *,
    context: RouteContext | None = None,
    **context_kwargs: Any,
) -> rgd.ResponseGetData:
    """PUT /api/content/v1/customer-states/authorized-domains - Set authorized domains.

    Args:
        auth: Authentication object containing Domo credentials.
        authorized_domain_ls: List of domain strings to authorize.
        context: Optional RouteContext for API request configuration.
        **context_kwargs: Additional context parameters (session, debug_api, etc.).

    Returns:
        ResponseGetData object containing the result of retrieving the updated
        authorized domains list.

    Raises:
        Config_CRUD_Error: If the API request fails.
    """
    url = f"https://{auth.domo_instance}.domo.com/api/content/v1/customer-states/authorized-domains"

    body = {"name": "authorized-domains", "value": ",".join(authorized_domain_ls)}

    res = await gd.get_data(
        auth=auth,
        url=url,
        method="PUT",
        body=body,
        context=context,
    )

    if not res.is_success:
        raise Config_CRUD_Error(res=res)

    return await get_authorized_domains(
        auth=auth,
        context=context,
    )