code: public function getNodeDefinition(ArrayNodeDefinition $node)
      {
          $node
              ->children()
                  ->arrayNode($this->getName())
                      ->useAttributeAsKey('name')
                      ->prototype('array')
                          ->children()
                          ->booleanNode('is_public')
                              ->info('If true, the service will be public, else private.')
                              ->defaultTrue()
                          ->end()
                              ->arrayNode('key_encryption_algorithms')
                                  ->useAttributeAsKey('name')
                                  ->isRequired()
                                  ->prototype('scalar')->end()
                              ->end()
                              ->arrayNode('content_encryption_algorithms')
                                  ->useAttributeAsKey('name')
                                  ->isRequired()
                                  ->prototype('scalar')->end()
                              ->end()
                              ->arrayNode('compression_methods')
                                  ->useAttributeAsKey('name')
                                  ->defaultValue(['DEF'])
                                  ->prototype('scalar')->end()
                              ->end()
                              ->booleanNode('create_decrypter')
                                  ->defaultFalse()
                              ->end()
                          ->end()
                      ->end()
                  ->end()
              ->end();
      }
docs: {@inheritdoc}