KCC Direct Identity Implementer
This skill guides the implementation of the IdentityV2 and ExternalIdentifier interfaces for direct KCC resources, ensuring they follow the canonical gcpurls.Template pattern.
Inputs
resource_kind: The KCC Kind (e.g.,VertexAIExampleStore).template: The GCP URL template (e.g.,projects/{project}/locations/{location}/exampleStores/{example_store}).api_version: The KCC API version.
Workflow
- Check Identity existence:
Check if
apis/<service>/<api_version>/<resource_lower>_identity.gofile already exist or not. We might have introduced the initial identity file when adding this resource as a reference. If the file does not exist, proceed with step 2 and skip step 3, otherwise skip step 2 and proceed with step 3. - Implement Identity:
Create
apis/<service>/<api_version>/<resource_lower>_identity.go.- Use
identity.IdentityV2. - Use
gcpurls.Templatefor URL parsing. - Implement
ExternalIdentifier(). - Implement
ParentString() stringto return the GCP parent URI (e.g.,projects/{project}orprojects/{project}/locations/{location})
- Use
- ** Complete Identity Implementation**:
Navigate to the existing
apis/<service>/<api_version>/<resource_lower>_identity.go.- Use
_ identity.Resource. - Implement
ExternalIdentifier(). - Implement
ParentString() stringto return the GCP parent URI (e.g.,projects/{project}orprojects/{project}/locations/{location})
- Use
- Parent & Hierarchy Support:
- Ensure the
Specstruct has aProjectRef(andLocationif applicable). - Hierarchical Branching: If the GCP resource supports multiple hierarchies (e.g., Global and Regional), implement logic in
String()andFromExternal()to handle both. Use the presence of thelocationfield in the Spec to determine which pattern to use.
- Ensure the
Journaling
Append any template mapping complexities (e.g., multi-parent or multi-hierarchy resources) to .gemini/journals/<service>.md using the format described in the kcc-agentic-journaler skill.