{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "title": "execute_async_wrapper_step_command",
    "description": "Execute async wrapper step command schema.",
    "additionalProperties": false,
    "required": [
        "tenant_id",
        "environment_id",
        "step_function_name"
    ],
    "properties": {
        "tenant_id": {
            "type": "string",
            "minLength": 32,
            "maxLength": 36,
            "format": "uuid",
            "description": "A UUID."
        },
        "environment_id": {
            "type": "string",
            "minLength": 32,
            "maxLength": 36,
            "format": "uuid",
            "description": "A UUID."
        },
        "step_function_name": {
            "type": "string",
            "description": "Step function name to execute"
        },
        "init_defaults": {
            "description": "Environment initialization defaults",
            "oneOf": [
                {
                    "type": "object",
                    "title": "environment_init_defaults",
                    "description": "Environment initialization defaults",
                    "additionalProperties": false,
                    "properties": {
                        "portal_service": {
                            "type": "object",
                            "title": "portal_service",
                            "description": "Domain name mapping",
                            "additionalProperties": false,
                            "required": [
                                "portal_sub_domain"
                            ],
                            "properties": {
                                "portal_sub_domain": {
                                    "type": "string",
                                    "minLength": 3,
                                    "maxLength": 63,
                                    "description": "Portal sub domain"
                                }
                            }
                        },
                        "id_service": {
                            "type": "object",
                            "title": "id_service",
                            "description": "ID Service config defaults",
                            "additionalProperties": false,
                            "properties": {
                                "management_super_admins": {
                                    "type": "array",
                                    "description": "List of management super admins",
                                    "additionalItems": false,
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "allowed_origins": {
                                    "type": "array",
                                    "description": "List of allowed origins",
                                    "additionalItems": false,
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "access_token_lifetime": {
                                    "type": "integer",
                                    "description": "Access token lifetime in seconds"
                                },
                                "cookie_lifetime": {
                                    "type": "integer",
                                    "description": "Cookie lifetime in seconds"
                                },
                                "service_account_token_lifetime": {
                                    "type": "integer",
                                    "description": "Service account token lifetime in seconds"
                                },
                                "idp_configurations": {
                                    "type": "object",
                                    "title": "idp_configurations",
                                    "description": "Configuration details for ID Providers",
                                    "additionalProperties": false,
                                    "properties": {
                                        "google": {
                                            "type": "object",
                                            "title": "google",
                                            "description": "IDP configuration for Google",
                                            "required": [
                                                "enabled",
                                                "use_built_in_idp"
                                            ],
                                            "additionalProperties": false,
                                            "properties": {
                                                "enabled": {
                                                    "type": "boolean",
                                                    "description": "Status of the IDP"
                                                },
                                                "use_built_in_idp": {
                                                    "type": "boolean",
                                                    "description": "Use built in Google IDP"
                                                },
                                                "client_id": {
                                                    "type": "string",
                                                    "description": "Client ID for Google IDP"
                                                },
                                                "client_secret": {
                                                    "type": "string",
                                                    "description": "Client secret for Google IDP"
                                                }
                                            },
                                            "if": {
                                                "properties": {
                                                    "use_built_in_idp": {
                                                        "const": false,
                                                        "description": "Use built in Google IDP"
                                                    }
                                                }
                                            },
                                            "then": {
                                                "required": [
                                                    "client_id",
                                                    "client_secret"
                                                ]
                                            }
                                        },
                                        "axinom": {
                                            "type": "object",
                                            "title": "axinom_idp",
                                            "description": "IDP configuration for Axinom",
                                            "required": [
                                                "enabled"
                                            ],
                                            "additionalProperties": false,
                                            "properties": {
                                                "enabled": {
                                                    "type": "boolean",
                                                    "description": "Status of the IDP"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "ax_auth_service": {
                            "type": "object",
                            "title": "ax_auth_service",
                            "description": "AxAuth service defaults",
                            "additionalProperties": false,
                            "required": [
                                "enabled"
                            ],
                            "properties": {
                                "enabled": {
                                    "type": "boolean",
                                    "description": "Status of AxAuth Service"
                                },
                                "redirect_urls": {
                                    "type": "array",
                                    "description": "Redirect URLs",
                                    "additionalItems": false,
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "users": {
                                    "type": "array",
                                    "description": "AxAuth users",
                                    "additionalItems": false,
                                    "items": {
                                        "type": "object",
                                        "title": "user",
                                        "description": "AxAuth User",
                                        "additionalProperties": false,
                                        "required": [
                                            "email",
                                            "first_name",
                                            "last_name"
                                        ],
                                        "properties": {
                                            "first_name": {
                                                "type": "string",
                                                "description": "First name of the AxAuth user"
                                            },
                                            "last_name": {
                                                "type": "string",
                                                "description": "Last name of the AxAuth user"
                                            },
                                            "email": {
                                                "type": "string",
                                                "description": "Email of the AxAuth user"
                                            },
                                            "password": {
                                                "type": "string",
                                                "description": "password"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                {
                    "type": "null"
                }
            ]
        }
    }
}
