private function configureOptions(OptionsResolver $resolver)
    {
        $resolver
            ->setRequired([
                'username',
                'password',
                'sender',
                'method',
            ])
            ->setDefaults([
                'delivery_start' => null,
                'charset' => Charsets::UTF8,
                'validity_period' => \DateInterval::createFromDateString('2800 minutes'),
                'encoding_schema' => EncodingSchemas::NORMAL,
                'endpoint_uri' => Endpoints::REST_HTTPS,
            ])
            ->setAllowedTypes('username', 'string')
            ->setAllowedTypes('password', 'string')
            ->setAllowedTypes('sender', 'string')
            ->setAllowedTypes('method', 'string')
            ->setAllowedTypes('delivery_start', ['null', 'DateTime'])
            ->setAllowedTypes('validity_period', ['null', 'DateInterval'])
            ->setAllowedTypes('encoding_schema', 'string')
            ->setAllowedTypes('charset', 'string')
            ->setAllowedTypes('endpoint_uri', 'string')
            ->setAllowedValues('method', [
                SendMethods::CLASSIC,
                SendMethods::CLASSIC_PLUS,
                SendMethods::BASIC,
                SendMethods::TEST_CLASSIC,
                SendMethods::TEST_CLASSIC_PLUS,
                SendMethods::TEST_BASIC,
            ])
            ->setAllowedValues('validity_period', function (\DateInterval $value) {
                return $value->i >= ValidityPeriods::MIN && $value->i <= ValidityPeriods::MAX;
            })
            ->setAllowedValues('encoding_schema', [
                EncodingSchemas::NORMAL,
                EncodingSchemas::UCS2,
            ])
            ->setAllowedValues('charset', [
                Charsets::ISO_8859_1,
                Charsets::UTF8,
            ])
        ;
    }
private function configureOptions(OptionsResolver $resolver)
    {
        $resolver
            ->setRequired([
                'username',
                'password',
                'sender',
                'method',
            ])
            ->setDefaults([
                'delivery_start' => null,
                'charset' => Charsets::UTF8,
                'validity_period' => \DateInterval::createFromDateString('2800 minutes'),
                'encoding_schema' => EncodingSchemas::NORMAL,
                'endpoint_uri' => Endpoints::REST_HTTPS,
            ])
            ->setAllowedTypes('username', 'string')
            ->setAllowedTypes('password', 'string')
            ->setAllowedTypes('sender', 'string')
            ->setAllowedTypes('method', 'string')
            ->setAllowedTypes('delivery_start', ['null', 'DateTime'])
            ->setAllowedTypes('validity_period', ['null', 'DateInterval'])
            ->setAllowedTypes('encoding_schema', 'string')
            ->setAllowedTypes('charset', 'string')
            ->setAllowedTypes('endpoint_uri', 'string')
            ->setAllowedValues('method', [
                SendMethods::CLASSIC,
                SendMethods::CLASSIC_PLUS,
                SendMethods::BASIC,
                SendMethods::TEST_CLASSIC,
                SendMethods::TEST_CLASSIC_PLUS,
                SendMethods::TEST_BASIC,
            ])
            ->setAllowedValues('validity_period', function (\DateInterval $value) {
                return $value->i >= ValidityPeriods::MIN && $value->i <= ValidityPeriods::MAX;
            })
            ->setAllowedValues('encoding_schema', [
                EncodingSchemas::NORMAL,
                EncodingSchemas::UCS2,
            ])
            ->setAllowedValues('charset', [
                Charsets::ISO_8859_1,
                Charsets::UTF8,
            ])
        ;
    }
private function configureOptions ( OptionsResolver $ resolver ) { $ resolver -> setRequired ( [ 'username' , 'password' , 'sender' , 'method' , ] ) -> setDefaults ( [ 'delivery_start' => null , 'charset' => Charsets :: UTF8 , 'validity_period' => \ DateInterval :: createFromDateString ( '2800 minutes' ) , 'encoding_schema' => EncodingSchemas :: NORMAL , 'endpoint_uri' => Endpoints :: REST_HTTPS , ] ) -> setAllowedTypes ( 'username' , 'string' ) -> setAllowedTypes ( 'password' , 'string' ) -> setAllowedTypes ( 'sender' , 'string' ) -> setAllowedTypes ( 'method' , 'string' ) -> setAllowedTypes ( 'delivery_start' , [ 'null' , 'DateTime' ] ) -> setAllowedTypes ( 'validity_period' , [ 'null' , 'DateInterval' ] ) -> setAllowedTypes ( 'encoding_schema' , 'string' ) -> setAllowedTypes ( 'charset' , 'string' ) -> setAllowedTypes ( 'endpoint_uri' , 'string' ) -> setAllowedValues ( 'method' , [ SendMethods :: CLASSIC , SendMethods :: CLASSIC_PLUS , SendMethods :: BASIC , SendMethods :: TEST_CLASSIC , SendMethods :: TEST_CLASSIC_PLUS , SendMethods :: TEST_BASIC , ] ) -> setAllowedValues ( 'validity_period' , function ( \ DateInterval $ value ) { return $ value -> i >= ValidityPeriods :: MIN && $ value -> i <= ValidityPeriods :: MAX ; } ) -> setAllowedValues ( 'encoding_schema' , [ EncodingSchemas :: NORMAL , EncodingSchemas :: UCS2 , ] ) -> setAllowedValues ( 'charset' , [ Charsets :: ISO_8859_1 , Charsets :: UTF8 , ] ) ; }
Configure default options for client.

It takes required options username, password, sender and method.
validity_period MUST be a \DateInterval object if set
delivery_start MUST be a \DateTime object if set

@param OptionsResolver $resolver
Configure default options for client .