'Create a new DataprocClusterCreateOperator.
For more info on the creation of a cluster through the API, have a look at:
https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.clusters
:param cluster_name: The name of the cluster to create
:type cluster_name: string
:param project_id: The ID of the google cloud project in which
to create the cluster
:type project_id: string
:param num_workers: The # of workers to spin up
:type num_workers: int
:param storage_bucket: The storage bucket to use, setting to None lets dataproc
generate a custom one for you
:type storage_bucket: string
:param init_actions_uris: List of GCS uri\'s containing
dataproc initialization scripts
:type init_actions_uris: list[string]
:param metadata: dict of key-value google compute engine metadata entries
to add to all instances
:type metadata: dict
:param image_version: the version of software inside the Dataproc cluster
:type image_version: string
:param properties: dict of properties to set on
config files (e.g. spark-defaults.conf), see
https://cloud.google.com/dataproc/docs/reference/rest/v1/             projects.regions.clusters#SoftwareConfig
:type properties: dict
:param master_machine_type: Compute engine machine type to use for the master node
:type master_machine_type: string
:param master_disk_size: Disk size for the master node
:type int
:param worker_machine_type:Compute engine machine type to use for the worker nodes
:type worker_machine_type: string
:param worker_disk_size: Disk size for the worker nodes
:type worker_disk_size: int
:param num_preemptible_workers: The # of preemptible worker nodes to spin up
:type num_preemptible_workers: int
:param labels: dict of labels to add to the cluster
:type labels: dict
:param zone: The zone where the cluster will be located
:type zone: string
:param region: leave as \'global\', might become relevant in the future
:param google_cloud_conn_id: The connection id to use when connecting to dataproc
:type google_cloud_conn_id: string
:param delegate_to: The account to impersonate, if any.
For this to work, the service account making the request must have domain-wide
delegation enabled.
:type delegate_to: string'

@apply_defaults
def __init__(self, cluster_name, project_id, num_workers, zone, storage_bucket=None, init_actions_uris=None, metadata=None, image_version=None, properties=None, master_machine_type='n1-standard-4', master_disk_size=500, worker_machine_type='n1-standard-4', worker_disk_size=500, num_preemptible_workers=0, labels=None, region='global', google_cloud_conn_id='google_cloud_default', delegate_to=None, *args, **kwargs):

    super(DataprocClusterCreateOperator, self).__init__(*args, **kwargs)
    self.google_cloud_conn_id = google_cloud_conn_id
    self.delegate_to = delegate_to
    self.cluster_name = cluster_name
    self.project_id = project_id
    self.num_workers = num_workers
    self.num_preemptible_workers = num_preemptible_workers
    self.storage_bucket = storage_bucket
    self.init_actions_uris = init_actions_uris
    self.metadata = metadata
    self.image_version = image_version
    self.properties = properties
    self.master_machine_type = master_machine_type
    self.master_disk_size = master_disk_size
    self.worker_machine_type = worker_machine_type
    self.worker_disk_size = worker_disk_size
    self.labels = labels
    self.zone = zone
    self.region = region
