code: @Override
      public CreateThingResult createThing(CreateThingRequest request) {
          request = beforeClientExecution(request);
          return executeCreateThing(request);
      }
docs: <p>
  Creates a thing record in the registry. If this call is made multiple times using the same thing name and
  configuration, the call will succeed. If this call is made with the same thing name but different configuration a
  <code>ResourceAlreadyExistsException</code> is thrown.
  </p>
  <note>
  <p>
  This is a control plane operation. See <a
  href="https://docs.aws.amazon.com/iot/latest/developerguide/authorization.html">Authorization</a> for information
  about authorizing control plane actions.
  </p>
  </note>
  
  @param createThingRequest
  The input for the CreateThing operation.
  @return Result of the CreateThing operation returned by the service.
  @throws InvalidRequestException
  The request is not valid.
  @throws ThrottlingException
  The rate exceeds the limit.
  @throws UnauthorizedException
  You are not authorized to perform this operation.
  @throws ServiceUnavailableException
  The service is temporarily unavailable.
  @throws InternalFailureException
  An unexpected error has occurred.
  @throws ResourceAlreadyExistsException
  The resource already exists.
  @throws ResourceNotFoundException
  The specified resource does not exist.
  @sample AWSIot.CreateThing