'host', 'default' => \alveolata\pod\class_pod::toom(), ], [ 'name' => 'port', 'default' => \alveolata\pod\class_pod::full(587), ], [ 'name' => 'negotiation_type', 'default' => \alveolata\pod\class_pod::full(enum_negotiation_type::forced), ], [ 'name' => 'auth_type', 'default' => \alveolata\pod\class_pod::full(enum_auth_type::login), ], [ 'name' => 'username', 'default' => \alveolata\pod\class_pod::toom(), ], [ 'name' => 'password', 'default' => \alveolata\pod\class_pod::toom(), ], ]; foreach ($fields as $field) { if ( (! $field['default']->has()) && (! array_key_exists($field['name'], $raw)) ) { throw (new \Exception(sprintf('mandatory parameter "%s" missing', $field['name']))); } else { $this->{$field['name']} = ($raw[$field['name']] ?? $field['default']->get()); } } } } /** */ class struct_data { /** * @param array {list} */ public $to; /** * @param ?string {(null | string)} */ public $subject; /** * @param ?string {(null | string)} */ public $body_plain; /** * @param ?string {(null | string)} */ public $body_html; /** * @param ?string {(null | string)} */ public $from; /** * @param array {list} */ public $cc; /** * @param array {list} */ public $bcc; /** * @param ?string (null | string) */ public $reply_to; /** * @param array {list>} */ public $attachments; /** */ public function __construct( array $raw ) { $fields = [ [ 'name' => 'to', 'default' => \alveolata\pod\class_pod::toom(), ], [ 'name' => 'subject', 'default' => \alveolata\pod\class_pod::toom(), ], [ 'name' => 'body_plain', 'default' => \alveolata\pod\class_pod::full(null), ], [ 'name' => 'body_html', 'default' => \alveolata\pod\class_pod::full(null), ], [ 'name' => 'from', 'default' => \alveolata\pod\class_pod::full(null), ], [ 'name' => 'cc', 'default' => \alveolata\pod\class_pod::full([]), ], [ 'name' => 'bcc', 'default' => \alveolata\pod\class_pod::full([]), ], [ 'name' => 'reply_to', 'default' => \alveolata\pod\class_pod::full(null), ], [ 'name' => 'attachments', 'default' => \alveolata\pod\class_pod::full([]), ], ]; foreach ($fields as $field) { if ( (! $field['default']->has()) && (! array_key_exists($field['name'], $raw)) ) { throw (new \Exception(sprintf('mandatory parameter "%s" missing', $field['name']))); } else { $this->{$field['name']} = ($raw[$field['name']] ?? $field['default']->get()); } } } } ?>