class SpringRepositoryRestResourceProviderConfiguration {

		static {
			getConfig().replaceParameterObjectWithClass(DefaultedPageable.class, DefaultPageable.class)
					.addRequestWrapperToIgnore(RootResourceInformation.class, PersistentEntityResourceAssembler.class, ETag.class, Sort.class)
					.addResponseWrapperToIgnore(RootResourceInformation.class);
		}

		/**
		 * Spring repository rest resource provider spring repository rest resource provider.
		 *
		 * @param mappings the mappings
		 * @param repositories the repositories
		 * @param associations the associations
		 * @param applicationContext the application context
		 * @param dataRestRouterOperationService the data rest router operation service
		 * @param persistentEntities the persistent entities
		 * @param mapper the mapper
		 * @param springDocDataRestUtils the spring doc data rest utils
		 * @return the spring repository rest resource provider
		 */
		@Bean
		@ConditionalOnMissingBean
		@Lazy(false)
		SpringRepositoryRestResourceProvider springRepositoryRestResourceProvider(ResourceMappings mappings,
				Repositories repositories, Associations associations, ApplicationContext applicationContext,
				DataRestRouterOperationService dataRestRouterOperationService, PersistentEntities persistentEntities,
				ObjectMapper mapper, SpringDocDataRestUtils springDocDataRestUtils) {<FILL_FUNCTION_BODY>}

		/**
		 * Data rest router operation builder data rest router operation service.
		 *
		 * @param dataRestOperationService the data rest operation service
		 * @param springDocConfigProperties the spring doc config properties
		 * @param repositoryRestConfiguration the repository rest configuration
		 * @param dataRestHalProvider the data rest hal provider
		 * @return the data rest router operation service
		 */
		@Bean
		@ConditionalOnMissingBean
		@Lazy(false)
		DataRestRouterOperationService dataRestRouterOperationBuilder(DataRestOperationService dataRestOperationService,
				SpringDocConfigProperties springDocConfigProperties, RepositoryRestConfiguration repositoryRestConfiguration, DataRestHalProvider dataRestHalProvider) {
			return new DataRestRouterOperationService(dataRestOperationService, springDocConfigProperties, repositoryRestConfiguration, dataRestHalProvider);
		}

		/**
		 * Data rest operation builder data rest operation builder.
		 *
		 * @param dataRestRequestService the data rest request builder
		 * @param tagsBuilder the tags builder
		 * @param dataRestResponseService the data rest response builder
		 * @param operationService the operation service
		 * @return the data rest operation builder
		 */
		@Bean
		@ConditionalOnMissingBean
		@Lazy(false)
		DataRestOperationService dataRestOperationBuilder(DataRestRequestService dataRestRequestService, DataRestTagsService tagsBuilder,
				DataRestResponseService dataRestResponseService, OperationService operationService) {
			return new DataRestOperationService(dataRestRequestService, tagsBuilder, dataRestResponseService, operationService);
		}

		/**
		 * Data rest request builder data rest request builder.
		 *
		 * @param localSpringDocParameterNameDiscoverer the local spring doc parameter name discoverer
		 * @param parameterBuilder the parameter builder
		 * @param requestBodyService the request body builder
		 * @param requestBuilder the request builder
		 * @param springDocDataRestUtils the spring doc data rest utils
		 * @return the data rest request builder
		 */
		@Bean
		@ConditionalOnMissingBean
		@Lazy(false)
		DataRestRequestService dataRestRequestBuilder(SpringDocParameterNameDiscoverer localSpringDocParameterNameDiscoverer, GenericParameterService parameterBuilder,
				RequestBodyService requestBodyService, AbstractRequestService requestBuilder, SpringDocDataRestUtils springDocDataRestUtils) {
			return new DataRestRequestService(localSpringDocParameterNameDiscoverer, parameterBuilder,
					requestBodyService, requestBuilder, springDocDataRestUtils);
		}

		/**
		 * Data rest response builder data rest response builder.
		 *
		 * @param genericResponseService the generic response builder
		 * @param springDocDataRestUtils the spring doc data rest utils
		 * @return the data rest response builder
		 */
		@Bean
		@ConditionalOnMissingBean
		@Lazy(false)
		DataRestResponseService dataRestResponseBuilder(GenericResponseService genericResponseService, SpringDocDataRestUtils springDocDataRestUtils) {
			return new DataRestResponseService(genericResponseService, springDocDataRestUtils);
		}

		/**
		 * Data rest tags builder data rest tags builder.
		 *
		 * @param openAPIService the open api builder
		 * @return the data rest tags builder
		 */
		@Bean
		@ConditionalOnMissingBean
		@Lazy(false)
		DataRestTagsService dataRestTagsBuilder(OpenAPIService openAPIService) {
			return new DataRestTagsService(openAPIService);
		}

		/**
		 * Spring doc data rest utils spring doc data rest utils.
		 *
		 * @param linkRelationProvider the link relation provider
		 * @param repositoryRestConfiguration the repository rest configuration
		 * @return the spring doc data rest utils
		 */
		@Bean
		@ConditionalOnMissingBean
		@Lazy(false)
		SpringDocDataRestUtils springDocDataRestUtils(LinkRelationProvider linkRelationProvider, RepositoryRestConfiguration repositoryRestConfiguration) {
			return new SpringDocDataRestUtils(linkRelationProvider, repositoryRestConfiguration);
		}
	}

			return new SpringRepositoryRestResourceProvider(mappings, repositories, associations, applicationContext,
					dataRestRouterOperationService, persistentEntities, mapper, springDocDataRestUtils);
		
<no_super_class>