func resourceRancherEnvironment() *schema.Resource { return &schema.Resource{ Create: resourceRancherEnvironmentCreate, Read: resourceRancherEnvironmentRead, Update: resourceRancherEnvironmentUpdate, Delete: resourceRancherEnvironmentDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ "id": &schema.Schema{ Type: schema.TypeString, Computed: true, }, "name": &schema.Schema{ Type: schema.TypeString, Required: true, }, "orchestration": &schema.Schema{ Type: schema.TypeString, Default: "cattle", Optional: true, ValidateFunc: validation.StringInSlice([]string{"cattle", "kubernetes", "mesos", "swarm"}, true), }, "description": &schema.Schema{ Type: schema.TypeString, Optional: true, }, }, } }
func resourceRancherStack() *schema.Resource { return &schema.Resource{ Create: resourceRancherStackCreate, Read: resourceRancherStackRead, Update: resourceRancherStackUpdate, Delete: resourceRancherStackDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ "id": &schema.Schema{ Type: schema.TypeString, Computed: true, }, "name": &schema.Schema{ Type: schema.TypeString, Required: true, }, "description": &schema.Schema{ Type: schema.TypeString, Optional: true, }, "environment_id": { Type: schema.TypeString, Required: true, ForceNew: true, }, "docker_compose": { Type: schema.TypeString, Optional: true, }, "rancher_compose": { Type: schema.TypeString, Optional: true, }, "environment": { Type: schema.TypeMap, Optional: true, }, "catalog_id": { Type: schema.TypeString, Optional: true, }, "scope": { Type: schema.TypeString, Default: "user", Optional: true, ValidateFunc: validation.StringInSlice([]string{"user", "system"}, true), }, "start_on_create": { Type: schema.TypeBool, Optional: true, Computed: true, }, "finish_upgrade": { Type: schema.TypeBool, Optional: true, }, "rendered_docker_compose": { Type: schema.TypeString, Computed: true, }, "rendered_rancher_compose": { Type: schema.TypeString, Computed: true, }, }, } }
func resourceNewRelicAlertCondition() *schema.Resource { validAlertConditionTypes := make([]string, 0, len(alertConditionTypes)) for k := range alertConditionTypes { validAlertConditionTypes = append(validAlertConditionTypes, k) } return &schema.Resource{ Create: resourceNewRelicAlertConditionCreate, Read: resourceNewRelicAlertConditionRead, Update: resourceNewRelicAlertConditionUpdate, Delete: resourceNewRelicAlertConditionDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ "policy_id": { Type: schema.TypeInt, Required: true, ForceNew: true, }, "name": { Type: schema.TypeString, Required: true, }, "type": { Type: schema.TypeString, Required: true, ValidateFunc: validation.StringInSlice(validAlertConditionTypes, false), }, "entities": { Type: schema.TypeList, Elem: &schema.Schema{Type: schema.TypeInt}, Required: true, MinItems: 1, }, "metric": { Type: schema.TypeString, Required: true, //TODO: ValidateFunc from map }, "runbook_url": { Type: schema.TypeString, Optional: true, }, "term": { Type: schema.TypeList, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "duration": { Type: schema.TypeInt, Required: true, ValidateFunc: intInSlice([]int{5, 10, 15, 30, 60, 120}), }, "operator": { Type: schema.TypeString, Optional: true, Default: "equal", ValidateFunc: validation.StringInSlice([]string{"above", "below", "equal"}, false), }, "priority": { Type: schema.TypeString, Optional: true, Default: "critical", ValidateFunc: validation.StringInSlice([]string{"critical", "warning"}, false), }, "threshold": { Type: schema.TypeFloat, Required: true, ValidateFunc: float64Gte(0.0), }, "time_function": { Type: schema.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{"all", "any"}, false), }, }, }, Required: true, MinItems: 1, }, "user_defined_metric": { Type: schema.TypeString, Optional: true, }, "user_defined_value_function": { Type: schema.TypeString, Optional: true, ValidateFunc: validation.StringInSlice([]string{"average", "min", "max", "total", "sample_size"}, false), }, }, } }
func resourceArmStorageAccount() *schema.Resource { return &schema.Resource{ Create: resourceArmStorageAccountCreate, Read: resourceArmStorageAccountRead, Update: resourceArmStorageAccountUpdate, Delete: resourceArmStorageAccountDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, Required: true, ForceNew: true, ValidateFunc: validateArmStorageAccountName, }, "resource_group_name": { Type: schema.TypeString, Required: true, ForceNew: true, DiffSuppressFunc: resourceAzurermResourceGroupNameDiffSuppress, }, "location": { Type: schema.TypeString, Required: true, ForceNew: true, StateFunc: azureRMNormalizeLocation, }, "account_kind": { Type: schema.TypeString, Optional: true, ForceNew: true, ValidateFunc: validation.StringInSlice([]string{ string(storage.Storage), string(storage.BlobStorage), }, true), Default: string(storage.Storage), }, "account_type": { Type: schema.TypeString, Required: true, ValidateFunc: validateArmStorageAccountType, }, // Only valid for BlobStorage accounts, defaults to "Hot" in create function "access_tier": { Type: schema.TypeString, Optional: true, Computed: true, ValidateFunc: validation.StringInSlice([]string{ string(storage.Cool), string(storage.Hot), }, true), }, "enable_blob_encryption": { Type: schema.TypeBool, Optional: true, }, "primary_location": { Type: schema.TypeString, Computed: true, }, "secondary_location": { Type: schema.TypeString, Computed: true, }, "primary_blob_endpoint": { Type: schema.TypeString, Computed: true, }, "secondary_blob_endpoint": { Type: schema.TypeString, Computed: true, }, "primary_queue_endpoint": { Type: schema.TypeString, Computed: true, }, "secondary_queue_endpoint": { Type: schema.TypeString, Computed: true, }, "primary_table_endpoint": { Type: schema.TypeString, Computed: true, }, "secondary_table_endpoint": { Type: schema.TypeString, Computed: true, }, // NOTE: The API does not appear to expose a secondary file endpoint "primary_file_endpoint": { Type: schema.TypeString, Computed: true, }, "primary_access_key": { Type: schema.TypeString, Computed: true, }, "secondary_access_key": { Type: schema.TypeString, Computed: true, }, "tags": tagsSchema(), }, } }
func resourceArmKeyVault() *schema.Resource { return &schema.Resource{ Create: resourceArmKeyVaultCreate, Read: resourceArmKeyVaultRead, Update: resourceArmKeyVaultCreate, Delete: resourceArmKeyVaultDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, Required: true, ForceNew: true, }, "location": { Type: schema.TypeString, Required: true, ForceNew: true, StateFunc: azureRMNormalizeLocation, }, "resource_group_name": { Type: schema.TypeString, Required: true, ForceNew: true, }, "sku": { Type: schema.TypeSet, Required: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ string(keyvault.Standard), string(keyvault.Premium), }, false), }, }, }, }, "vault_uri": { Type: schema.TypeString, Computed: true, }, "tenant_id": { Type: schema.TypeString, Required: true, ValidateFunc: validateUUID, }, "access_policy": { Type: schema.TypeList, Optional: true, MinItems: 1, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "tenant_id": { Type: schema.TypeString, Required: true, ValidateFunc: validateUUID, }, "object_id": { Type: schema.TypeString, Required: true, ValidateFunc: validateUUID, }, "key_permissions": { Type: schema.TypeList, Required: true, Elem: &schema.Schema{ Type: schema.TypeString, ValidateFunc: validation.StringInSlice([]string{ string(keyvault.All), string(keyvault.Backup), string(keyvault.Create), string(keyvault.Decrypt), string(keyvault.Delete), string(keyvault.Encrypt), string(keyvault.Get), string(keyvault.Import), string(keyvault.List), string(keyvault.Restore), string(keyvault.Sign), string(keyvault.Unwrapkey), string(keyvault.Update), string(keyvault.Verify), string(keyvault.Wrapkey), }, false), }, }, "secret_permissions": { Type: schema.TypeList, Required: true, Elem: &schema.Schema{ Type: schema.TypeString, ValidateFunc: validation.StringInSlice([]string{ string(keyvault.SecretPermissionsAll), string(keyvault.SecretPermissionsDelete), string(keyvault.SecretPermissionsGet), string(keyvault.SecretPermissionsList), string(keyvault.SecretPermissionsSet), }, false), }, }, }, }, }, "enabled_for_deployment": { Type: schema.TypeBool, Optional: true, }, "enabled_for_disk_encryption": { Type: schema.TypeBool, Optional: true, }, "enabled_for_template_deployment": { Type: schema.TypeBool, Optional: true, }, "tags": tagsSchema(), }, } }
func resourceArmTrafficManagerEndpoint() *schema.Resource { return &schema.Resource{ Create: resourceArmTrafficManagerEndpointCreate, Read: resourceArmTrafficManagerEndpointRead, Update: resourceArmTrafficManagerEndpointCreate, Delete: resourceArmTrafficManagerEndpointDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, Required: true, ForceNew: true, }, "type": { Type: schema.TypeString, Required: true, ForceNew: true, ValidateFunc: validation.StringInSlice([]string{"azureEndpoints", "nestedEndpoints", "externalEndpoints"}, false), }, "profile_name": { Type: schema.TypeString, Required: true, ForceNew: true, }, "target": { Type: schema.TypeString, Optional: true, // when targeting an Azure resource the FQDN of that resource will be set as the target Computed: true, }, "target_resource_id": { Type: schema.TypeString, Optional: true, }, "endpoint_status": { Type: schema.TypeString, Optional: true, Computed: true, }, "weight": { Type: schema.TypeInt, Optional: true, Computed: true, ValidateFunc: validation.IntBetween(1, 1000), }, "priority": { Type: schema.TypeInt, Optional: true, Computed: true, ValidateFunc: validation.IntBetween(1, 1000), }, "endpoint_location": { Type: schema.TypeString, Optional: true, // when targeting an Azure resource the location of that resource will be set on the endpoint Computed: true, StateFunc: azureRMNormalizeLocation, }, "min_child_endpoints": { Type: schema.TypeInt, Optional: true, }, "resource_group_name": { Type: schema.TypeString, Required: true, ForceNew: true, DiffSuppressFunc: resourceAzurermResourceGroupNameDiffSuppress, }, }, } }
func resourceArmTrafficManagerProfile() *schema.Resource { return &schema.Resource{ Create: resourceArmTrafficManagerProfileCreate, Read: resourceArmTrafficManagerProfileRead, Update: resourceArmTrafficManagerProfileCreate, Delete: resourceArmTrafficManagerProfileDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, Required: true, ForceNew: true, }, "profile_status": { Type: schema.TypeString, Optional: true, Computed: true, ValidateFunc: validation.StringInSlice([]string{"Enabled", "Disabled"}, true), }, "traffic_routing_method": { Type: schema.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{"Performance", "Weighted", "Priority"}, false), }, "dns_config": { Type: schema.TypeSet, Required: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "relative_name": { Type: schema.TypeString, ForceNew: true, Required: true, }, "ttl": { Type: schema.TypeInt, Required: true, ValidateFunc: validation.IntBetween(30, 999999), }, }, }, Set: resourceAzureRMTrafficManagerDNSConfigHash, }, // inlined from dns_config for ease of use "fqdn": { Type: schema.TypeString, Computed: true, }, "monitor_config": { Type: schema.TypeSet, Required: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "protocol": { Type: schema.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{"http", "https"}, false), }, "port": { Type: schema.TypeInt, Required: true, ValidateFunc: validation.IntBetween(1, 65535), }, "path": { Type: schema.TypeString, Required: true, }, }, }, Set: resourceAzureRMTrafficManagerMonitorConfigHash, }, "resource_group_name": { Type: schema.TypeString, Required: true, ForceNew: true, DiffSuppressFunc: resourceAzurermResourceGroupNameDiffSuppress, }, "tags": tagsSchema(), }, } }