code: @Override
      public RegisterThingResult registerThing(RegisterThingRequest request) {
          request = beforeClientExecution(request);
          return executeRegisterThing(request);
      }
docs: <p>
  Provisions a thing.
  </p>
  
  @param registerThingRequest
  @return Result of the RegisterThing operation returned by the service.
  @throws InternalFailureException
  An unexpected error has occurred.
  @throws ServiceUnavailableException
  The service is temporarily unavailable.
  @throws InvalidRequestException
  The request is not valid.
  @throws UnauthorizedException
  You are not authorized to perform this operation.
  @throws ThrottlingException
  The rate exceeds the limit.
  @throws ConflictingResourceUpdateException
  A conflicting resource update exception. This exception is thrown when two pending updates cause a
  conflict.
  @throws ResourceRegistrationFailureException
  The resource registration failed.
  @sample AWSIot.RegisterThing