code: public Waiter<GetChangeRequest> resourceRecordSetsChanged() {
  
          return new WaiterBuilder<GetChangeRequest, GetChangeResult>().withSdkFunction(new GetChangeFunction(client))
                  .withAcceptors(new ResourceRecordSetsChanged.IsINSYNCMatcher())
                  .withDefaultPollingStrategy(new PollingStrategy(new MaxAttemptsRetryStrategy(60), new FixedDelayStrategy(30)))
                  .withExecutorService(executorService).build();
      }
docs: Builds a ResourceRecordSetsChanged waiter by using custom parameters waiterParameters and other parameters
  defined in the waiters specification, and then polls until it determines whether the resource entered the desired
  state or not, where polling criteria is bound by either default polling strategy or custom polling strategy.