/**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $configuration = new Configuration();
     $configuration->addClientSection($builder);
     $configuration->addApiSection($builder);
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('type')->isRequired()->cannotBeEmpty()->end()->arrayNode('options')->isRequired()->useAttributeAsKey('key')->prototype('scalar')->end()->end()->end();
     $builder->validate()->ifTrue(function ($v) {
         $gatewayFactory = Omnipay::getFactory();
         $gatewayFactory->find();
         $supportedTypes = $gatewayFactory->all();
         if (false == in_array($v['type'], $supportedTypes) && !class_exists($v['type'])) {
             throw new LogicException(sprintf('Given type %s is not supported. Try one of supported types: %s or use the gateway full class name.', $v['type'], implode(', ', $supportedTypes)));
         }
         return false;
     })->thenInvalid('A message');
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('merchant_code')->isRequired()->cannotBeEmpty()->end()->scalarNode('terminal')->isRequired()->cannotBeEmpty()->end()->scalarNode('secret_key')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('config_key')->isRequired()->cannotBeEmpty()->end()->scalarNode('abort_url')->isRequired()->cannotBeEmpty()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('skinCode')->isRequired()->cannotBeEmpty()->end()->scalarNode('merchantAccount')->isRequired()->cannotBeEmpty()->end()->scalarNode('hmacKey')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->scalarNode('notification_method')->defaultValue('basic')->end()->arrayNode('default_payment_fields')->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('eid')->isRequired()->cannotBeEmpty()->end()->scalarNode('secret')->isRequired()->cannotBeEmpty()->end()->scalarNode('country')->defaultValue('SE')->cannotBeEmpty()->end()->scalarNode('language')->defaultValue('SV')->cannotBeEmpty()->end()->scalarNode('currency')->defaultValue('SEK')->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('publishable_key')->isRequired()->cannotBeEmpty()->end()->scalarNode('secret_key')->isRequired()->cannotBeEmpty()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('login_id')->isRequired()->cannotBeEmpty()->end()->scalarNode('transaction_key')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('username')->isRequired()->cannotBeEmpty()->end()->scalarNode('password')->isRequired()->cannotBeEmpty()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('service')->defaultValue(null)->end()->end();
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('identifier')->isRequired()->cannotBeEmpty()->end()->scalarNode('password')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * @param ArrayNodeDefinition $builder
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('environment')->isRequired()->defaultValue('secure')->end()->scalarNode('pos_id')->isRequired()->cannotBeEmpty()->end()->scalarNode('signature_key')->isRequired()->cannotBeEmpty()->end()->end();
 }
 /**
  * @inheritDoc
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('account')->isRequired()->end()->scalarNode('secret')->defaultNull()->end()->end();
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('type')->isRequired()->cannotBeEmpty()->end()->arrayNode('options')->isRequired()->useAttributeAsKey('key')->prototype('scalar')->end()->end()->end();
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('id')->isRequired()->cannotBeEmpty()->end()->scalarNode('URLC')->end()->scalarNode('url')->end()->enumNode('type')->defaultValue(Constants::TYPE_RETURN_BUTTON_AND_NOTIFY)->values([Constants::TYPE_ONLY_RETURN_BUTTON, Constants::TYPE_INFINITY_POST_NOTIFY, Constants::TYPE_NO_INTERACTION, Constants::TYPE_RETURN_BUTTON_AND_NOTIFY])->end()->scalarNode('URLC')->end()->scalarNode('PIN')->end()->scalarNode('ip')->end()->scalarNode('endpoint')->defaultValue(Api::DEFAULT_ENDPOINT)->end()->scalarNode('method')->defaultValue('GET')->validate()->ifNotInArray(['GET', 'POST'])->thenInvalid('Invalid redirect method "%s"')->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('encryption_key')->isRequired()->cannotBeEmpty()->end()->scalarNode('account_number')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }