package Ġorg . ac as ict f . ctf . operator . model . kubernetes . v 1 alpha 1 Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ Ċ class ĠEnv Template Spec Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġpods : ĠList < Env Template Pod > ĊĠĠĠ Ġvar Ġservices : ĠList < Env Template Service > Ġ= ĠlistOf () ĊĠĠĠ Ġvar Ġing resses : ĠList < Env Template Ingress > Ġ= ĠlistOf () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Spec ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pods Ġ!= Ġother . pods ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( services Ġ!= Ġother . services ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( ing resses Ġ!= Ġother . ing resses ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġpods . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġservices . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġing resses . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Pod Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġmetadata : ĠEnv Template Pod Metadata ĊĠĠĠ Ġlateinit Ġvar Ġspec : ĠEnv Template Pod Spec ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Pod ĊĊĠĠĠĠĠĠĠ Ġif Ġ( metadata Ġ!= Ġother . metadata ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( spec Ġ!= Ġother . spec ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġmetadata . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġspec . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Pod Metadata Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġlabels : ĠMap < String , ĠString > ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Pod Metadata ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( labels Ġ!= Ġother . labels ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġname . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġlabels . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Pod Spec Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġcontainers : ĠList < Env Template Pod Spec Container > ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Pod Spec ĊĊĠĠĠĠĠĠĠ Ġif Ġ( containers Ġ!= Ġother . containers ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontainers . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Pod Spec Container Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġimage : ĠString ĊĠĠĠ Ġvar Ġenv : ĠList < Env Template Pod Spec Container Env > Ġ= ĠlistOf () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Pod Spec Container ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( image Ġ!= Ġother . image ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( env Ġ!= Ġother . env ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġname . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġimage . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġenv . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Pod Spec Container Env Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġvalue : ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Pod Spec Container Env ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġother . value ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġname . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġvalue . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Service Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġmetadata : ĠEnv Template Service Metadata ĊĠĠĠ Ġlateinit Ġvar Ġspec : ĠEnv Template Service Spec ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Service ĊĊĠĠĠĠĠĠĠ Ġif Ġ( metadata Ġ!= Ġother . metadata ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( spec Ġ!= Ġother . spec ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġmetadata . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġspec . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Service Metadata Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Service Metadata ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Service Spec Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġselector : ĠMap < String , ĠString > ĊĠĠĠ Ġlateinit Ġvar Ġports : ĠList < Env Template Service Spec Port > ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Service Spec ĊĊĠĠĠĠĠĠĠ Ġif Ġ( selector Ġ!= Ġother . selector ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( ports Ġ!= Ġother . ports ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġselector . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġports . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Service Spec Port Ġ{ ĊĠĠĠ Ġvar Ġname : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġport : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġtarget Port : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġprotocol Ġ= ĠEnv Template Service Spec Port Protocol . Tcp ĊĠĠĠ Ġvar Ġc tf Expose Ġ= ĠEnv Template Service Spec Port C tf Expose . None ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Service Spec Port ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( port Ġ!= Ġother . port ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( target Port Ġ!= Ġother . target Port ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( protocol Ġ!= Ġother . protocol ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( ctf Expose Ġ!= Ġother . ctf Expose ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġname ?. hashCode () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġport ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( target Port Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġprotocol . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġc tf Expose . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠEnv Template Service Spec Port Protocol Ġ{ ĊĠĠĠ Ġ@ JsonProperty (" TCP ") ĊĠĠĠ ĠTcp , ĊĊĠĠĠ Ġ@ JsonProperty (" UDP ") ĊĠĠĠ ĠU dp Ċ } Ċ Ċ enum Ġclass ĠEnv Template Service Spec Port C tf Expose Ġ{ ĊĠĠĠ Ġ@ JsonProperty (" None ") ĊĠĠĠ ĠNone , ĊĊĠĠĠ Ġ@ JsonProperty (" Ter mp ro xy ") ĊĠĠĠ ĠTer mp ro xy , Ċ } Ċ Ċ class ĠEnv Template Ingress Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġmetadata : ĠEnv Template Ingress Metadata ĊĠĠĠ Ġlateinit Ġvar Ġspec : ĠEnv Template Ingress Spec ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Ingress ĊĊĠĠĠĠĠĠĠ Ġif Ġ( metadata Ġ!= Ġother . metadata ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( spec Ġ!= Ġother . spec ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġmetadata . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġspec . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Ingress Metadata Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Ingress Metadata ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġname . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Ingress Spec Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġpath : ĠString ĊĠĠĠ Ġvar Ġpath Type Ġ= ĠEnv Template Ingress Path Type . Prefix ĊĠĠĠ Ġlateinit Ġvar Ġbackend : ĠEnv Template Ingress Backend ĊĠĠĠ Ġvar Ġc tf Expose Ġ= ĠEnv Template Ingress C tf Expose . None ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Ingress Spec ĊĊĠĠĠĠĠĠĠ Ġif Ġ( path Ġ!= Ġother . path ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( path Type Ġ!= Ġother . path Type ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( backend Ġ!= Ġother . backend ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( ctf Expose Ġ!= Ġother . ctf Expose ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġpath . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġpath Type . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġbackend . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġc tf Expose . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠEnv Template Ingress Path Type Ġ{ ĊĠĠĠ Ġ@ JsonProperty (" Prefix ") ĊĠĠĠ ĠPrefix , ĊĊĠĠĠ Ġ@ JsonProperty (" Exact ") ĊĠĠĠ ĠExact , ĊĊĠĠĠ Ġ@ JsonProperty (" Implementation Specific ") ĊĠĠĠ ĠImplementation Specific Ċ } Ċ Ċ enum Ġclass ĠEnv Template Ingress C tf Expose Ġ{ ĊĠĠĠ Ġ@ JsonProperty (" None ") ĊĠĠĠ ĠNone , ĊĊĠĠĠ Ġ@ JsonProperty (" Web ") ĊĠĠĠ ĠWeb , Ċ } Ċ Ċ class ĠEnv Template Ingress Backend Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġservice : ĠEnv Template Ingress Backend Service ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Ingress Backend ĊĊĠĠĠĠĠĠĠ Ġif Ġ( service Ġ!= Ġother . service ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġservice . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Ingress Backend Service Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġname : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġport : ĠEnv Template Ingress Backend Service Port ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Ingress Backend Service ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( port Ġ!= Ġother . port ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġname . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġport . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠEnv Template Ingress Backend Service Port Ġ{ ĊĠĠĠ Ġvar Ġname : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnumber : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEnv Template Ingress Backend Service Port ĊĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġother . name ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( number Ġ!= Ġother . number ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġname ?. hashCode () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( number Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ