 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Variables
- func NewPageResource() resource.Resource
- func PageSchema() map[string]schema.Attribute
- func PageToPortBody(pm *PageModel) (*cli.Page, error)
- type PageModel
- type PageResource
- func (r *PageResource) Configure(ctx context.Context, req resource.ConfigureRequest, ...)
- func (r *PageResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse)
- func (r *PageResource) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse)
- func (r *PageResource) ImportState(ctx context.Context, req resource.ImportStateRequest, ...)
- func (r *PageResource) Metadata(ctx context.Context, req resource.MetadataRequest, ...)
- func (r *PageResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse)
- func (r *PageResource) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse)
- func (r *PageResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse)
- func (r *PageResource) ValidateConfig(ctx context.Context, req resource.ValidateConfigRequest, ...)
 
Constants ¶
This section is empty.
Variables ¶
      View Source
      
  
var PageResourceMarkdownDescription = `
# Page resource
A full list of the available page types and their identifiers can be found [here](https://docs.getport.io/customize-pages-dashboards-and-plugins/page/catalog-page).
A full list of widget types and their identifiers can be found [here](https://docs.getport.io/customize-pages-dashboards-and-plugins/dashboards/#widget-type-identifiers-terraform).
~> **WARNING**
The page resource is currently in beta and is subject to change in future versions.
Use it by setting the Environment Variable ` + "`PORT_BETA_FEATURES_ENABLED=true`" + `.
If this Environment Variable isn't specified, you won't be able to use the resource.
## Example Usage
### Blueprint Entities Page
` + "```hcl" + `
resource "port_page" "microservice_blueprint_page" {
  identifier            = "microservice_blueprint_page"
  title                 = "Microservices"
  type                  = "blueprint-entities"
  icon                  = "Microservice"
  blueprint             = port_blueprint.base_blueprint.identifier
  widgets               = [
    jsonencode(
      {
        "id" : "microservice-table-entities",
        "type" : "table-entities-explorer",
        "blueprint": port_blueprint.base_blueprint.identifier,
        "dataset" : {
          "combinator" : "and",
          "rules" : [
          ]
        }
      }
    )
  ]
}
` + "```" + `
### Dashboard Page
` + "```hcl" + `
resource "port_page" "microservice_dashboard_page" {
  identifier            = "microservice_dashboard_page"
  title                 = "Microservices"
  icon                  = "GitHub"
  type                  = "dashboard"
  widgets               = [
    jsonencode(
      {
        "id" : "dashboardWidget",
        "layout" : [
          {
            "height" : 400,
            "columns" : [
              {
                "id" : "microserviceGuide",
                "size" : 12
              }
            ]
          }
        ],
        "type" : "dashboard-widget",
        "widgets" : [
          {
            "title" : "Microservices Guide",
            "icon" : "BlankPage",
            "markdown" : "# This is the new Microservice Dashboard",
            "type" : "markdown",
            "description" : "",
            "id" : "microserviceGuide"
          }
        ],
      }
    )
  ]
}
` + "```" + `
### Page with parent
Create a page inside a folder.
` + "```hcl" + `
resource "port_page" "microservice_dashboard_page" {
  identifier            = "microservice_dashboard_page"
  title                 = "Microservices"
  icon                  = "GitHub"
  type                  = "dashboard"
  parent                = "microservices-folder"
  widgets               = [
    jsonencode(
      {
        "id" : "dashboardWidget",
        "layout" : [
          {
            "height" : 400,
            "columns" : [
              {
                "id" : "microserviceGuide",
                "size" : 12
              }
            ]
          }
        ],
        "type" : "dashboard-widget",
        "widgets" : [
          {
            "title" : "Microservices Guide",
            "icon" : "BlankPage",
            "markdown" : "# This is the new Microservice Dashboard",
            "type" : "markdown",
            "description" : "",
            "id" : "microserviceGuide"
          }
        ],
      }
    )
  ]
}
` + "```" + `
### Page with after
Create a page after another page.
` + "```hcl" + `
resource "port_page" "microservice_dashboard_page" {
  identifier            = "microservice_dashboard_page"
  title                 = "Microservices"
  icon                  = "GitHub"
  type                  = "dashboard"
  after                 = "microservices_entities_page"
  widgets               = [
    jsonencode(
      {
        "id" : "dashboardWidget",
        "layout" : [
          {
            "height" : 400,
            "columns" : [
              {
                "id" : "microserviceGuide",
                "size" : 12
              }
            ]
          }
        ],
        "type" : "dashboard-widget",
        "widgets" : [
          {
            "title" : "Microservices Guide",
            "icon" : "BlankPage",
            "markdown" : "# This is the new Microservice Dashboard",
            "type" : "markdown",
            "description" : "",
            "id" : "microserviceGuide"
          }
        ],
      }
    )
  ]
}
` + "```" + `
### Home Page
` + "```hcl" + `
resource "port_page" "home_page" {
  identifier            = "$home"
  title                 = "Home"
  type                  = "home"
  widgets               = [
    jsonencode(
      {
        "type" : "dashboard-widget",
        "id" : "azkLJD6wLk6nJSvA",
        "layout" : [
          {
            "columns" : [
              {
                "id" : "markdown",
                "size" : 6
              },
              {
                "id" : "overview",
                "size" : 6
              },
            ],
            "height" : 648
          }
        ],
        "widgets" : [
          {
            "type" : "markdown",
            "markdown" : "## Welcome to your internal developer portal",
            "icon" : "port",
            "title" : "About developer Portal",
            "id" : "markdown"
          },
          {
            "type" : "iframe-widget",
            "id" : "overview",
            "title" : "Overview",
            "icon" : "Docs",
            "url" : "https://www.youtube.com/embed/ggXL2ZsPVQM?si=xj6XtV0faatoOhss",
            "urlType" : "public"
          }
        ]
      }
    )
  ]
}
` + "```" + `
The home page is a special page, which is created by default when you create a new organization.
- When deleting the home page resource using terraform, the home page will not be deleted from Port as it isn't deletable page, instead, the home page will be removed from the terraform state.
- Due to only having one home page you'll have to import the state of the home page manually.
` + "```" + `
terraform import port_page.home_page "\$home"
` + "```" + `
`
    Functions ¶
func NewPageResource ¶
func PageSchema ¶
Types ¶
type PageModel ¶
type PageModel struct {
	ID          types.String   `tfsdk:"id"`
	Identifier  types.String   `tfsdk:"identifier"`
	Title       types.String   `tfsdk:"title"`
	Type        types.String   `tfsdk:"type"`
	Parent      types.String   `tfsdk:"parent"`
	After       types.String   `tfsdk:"after"`
	Icon        types.String   `tfsdk:"icon"`
	Locked      types.Bool     `tfsdk:"locked"`
	Blueprint   types.String   `tfsdk:"blueprint"`
	Widgets     []types.String `tfsdk:"widgets"`
	CreatedAt   types.String   `tfsdk:"created_at"`
	CreatedBy   types.String   `tfsdk:"created_by"`
	UpdatedAt   types.String   `tfsdk:"updated_at"`
	UpdatedBy   types.String   `tfsdk:"updated_by"`
	Description types.String   `tfsdk:"description"`
}
    type PageResource ¶
type PageResource struct {
	// contains filtered or unexported fields
}
    func (*PageResource) Configure ¶
func (r *PageResource) Configure(ctx context.Context, req resource.ConfigureRequest, resp *resource.ConfigureResponse)
func (*PageResource) Create ¶
func (r *PageResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse)
func (*PageResource) Delete ¶
func (r *PageResource) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse)
func (*PageResource) ImportState ¶
func (r *PageResource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse)
func (*PageResource) Metadata ¶
func (r *PageResource) Metadata(ctx context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse)
func (*PageResource) Read ¶
func (r *PageResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse)
func (*PageResource) Schema ¶
func (r *PageResource) Schema(ctx context.Context, req resource.SchemaRequest, resp *resource.SchemaResponse)
func (*PageResource) Update ¶
func (r *PageResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse)
func (*PageResource) ValidateConfig ¶
func (r *PageResource) ValidateConfig(ctx context.Context, req resource.ValidateConfigRequest, resp *resource.ValidateConfigResponse)
 Click to show internal directories. 
   Click to hide internal directories.