Project
Validators for Google Cloud Project identifiers.
IsValidProjectID
Signature: project.IsValidProjectID(id string) bool
Example:
import "github.com/UnitVectorY-Labs/gcpvalidate/project"
// Valid project IDs
project.IsValidProjectID("my-project-123") // true
project.IsValidProjectID("example-gcp") // true
// Invalid project IDs
project.IsValidProjectID("My-Project") // false - uppercase not allowed
project.IsValidProjectID("-bad-start") // false - cannot start with hyphen
project.IsValidProjectID("bad-end-") // false - cannot end with hyphen
project.IsValidProjectID("short") // false - too short (min 6 chars)
Rules:
- Be 6 to 30 characters long
- Start with a lowercase letter
- Contain only lowercase letters, digits, and hyphens
- Not end with a hyphen
References:
IsValidProjectName
Signature: project.IsValidProjectName(name string) bool
Example:
import "github.com/UnitVectorY-Labs/gcpvalidate/project"
// Valid project names
project.IsValidProjectName("My Project") // true
project.IsValidProjectName("Test 123!") // true
project.IsValidProjectName("O'Brien's Project") // true
// Invalid project names
project.IsValidProjectName("abc") // false - too short (min 4 chars)
project.IsValidProjectName("Way Too Long Project Name Here") // false - exceeds 30 chars
project.IsValidProjectName("Invalid@Char") // false - @ not allowed
Rules:
- Be 4 to 30 characters long
- Contain only letters, numbers, single quotes, hyphens, spaces, or exclamation points
Note: This validates the display name shown in the console, not the Project ID used in APIs and resource paths.
IsValidProjectLocationParent
Signature: project.IsValidProjectLocationParent(parent string) bool
Example:
import "github.com/UnitVectorY-Labs/gcpvalidate/project"
// Valid parent paths
project.IsValidProjectLocationParent(
"projects/my-project/locations/us-central1") // true
project.IsValidProjectLocationParent(
"projects/example-project/locations/global") // true
// Invalid parent paths
project.IsValidProjectLocationParent(
"projects/My-Project/locations/us-central1") // false - invalid project ID
project.IsValidProjectLocationParent(
"projects/my-project") // false - missing location
Structure: projects/{project}/locations/{location}
Segment validation:
{project}- Must satisfyproject.IsValidProjectID{location}- Must satisfylocation.IsValidLocation
References: