code: @Override
    public void create(String bucketName, CreateBucketOptions options) throws IOException {
      logger.atFine().log("create(%s)", bucketName);
      Preconditions.checkArgument(
          !Strings.isNullOrEmpty(bucketName), "bucketName must not be null or empty");
      checkNotNull(options, "options must not be null");
      checkNotNull(storageOptions.getProjectId(), "projectId must not be null");
  
      Bucket bucket = new Bucket();
      bucket.setName(bucketName);
      bucket.setLocation(options.getLocation());
      bucket.setStorageClass(options.getStorageClass());
      Storage.Buckets.Insert insertBucket =
          configureRequest(gcs.buckets().insert(storageOptions.getProjectId(), bucket), bucketName);
      // TODO(user): To match the behavior of throwing FileNotFoundException for 404, we probably
      // want to throw org.apache.commons.io.FileExistsException for 409 here.
      try {
        ResilientOperation.retry(
            ResilientOperation.getGoogleRequestCallable(insertBucket),
            backOffFactory.newBackOff(),
            rateLimitedRetryDeterminer,
            IOException.class,
            sleeper);
      } catch (InterruptedException e) {
        throw new IOException(e); // From sleep
      }
    }
docs: See {@link GoogleCloudStorage#create(String, CreateBucketOptions)} for details about expected
  behavior.